我有这个脚本
<?php
include 'theme.php';
/*ceklogin();*/
css();
if($_POST['wget-send'])
{
$dir=$_POST['dir'];
$link=$_POST['link'];
exec('echo '.$link.' > /tmp/wget-download-link.txt',$out);
exec('wget -P '.$dir.' -b -i /tmp/wget-download-link.txt -o /www/wget.log -c -t 100 -w 10',$out);
echo $out[2];
exit();
}
echo "<br><br><form action="".$PHP_SELF."" method="post">";
echo "Download directory :<br><input type="text" name="dir" size="15" value="/mnt/usb/"/><br>";
echo '<br>Download link :<br>';
echo ("<textarea name="link" rows="11" cols="60"></textarea><br><br>");
echo '<input type="submit" name="wget-send" value="Send" />';
echo "</form></div>";
foot();
echo '
</div>
</body>
</div>
</html>';
?></div>
</html>';
?>
每当我输入两行或更多行的文本时,它们都不会保存在/tmp/wget-download-link.txt
中。该文件始终为空,但是当我只输入仅包含一行的文本时,它会保存在那里。我希望我的wget-download-link.txt
文件是这样的:
http:xxx1
http:xxx2
http:xxx3
有什么办法可以做到这一点吗?
您需要使用 "" 在字符串中放置换行符。
带有 echo 命令的新行字符是""。举个例子:
echo "This is line 1nThis is line 2" > /tmp/hallo_world.txt
所以你应该工作
exec('echo "'.$link.'" > /tmp/wget-download-link.txt',$out);
在执行此操作之前,您应该$link 中替换 \r 并在$link内容中屏蔽双夸......