有没有办法在文本区域(php)中保留换行符



我有这个脚本

<?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内容中屏蔽双夸......

最新更新