2014-12-23 153 views
1

我有此腳本有沒有辦法在textarea(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 

有沒有辦法做到這一點?

+1

引用$鏈接,而回聲..順便說一句,爲什麼你不使用PHP函數file_put_contents()或fwrite來做到這一點? – donald123

+0

對不起,但你能詳細說明嗎?我不明白 – orlea

回答

1

您需要使用「\ n」將換行符放入字符串中。

+0

這樣? 'http:xxxx1 \ n http:xxx2 \ n http:xxx3' 這是一個痛苦的脖子要做到這一點,我想避免寫,只需點擊輸入我的鍵盤 – orlea

0

帶有echo命令的換行符是「\ n」。以下面的例子:

echo "This is line 1\nThis is line 2" > /tmp/hallo_world.txt

所以你應該工作

exec('echo "'.$link.'" > /tmp/wget-download-link.txt',$out); 

這樣做,你應該$鏈接取代之前\ r \ n的$鏈接內容的\ n和麪具doublequoats ....

+0

你可以請重寫我的代碼以上?我還在學習,我已經嘗試了上面的建議,但是當我使用換行鍵輸入一些文本時,仍然會出現'wget-download-link.txt'爲空 – orlea

+0

哦,對不起,我沒有仔細閱讀你的答案,嘿嘿太久了,非常感謝,它的作品:D – orlea

相關問題