iT邦幫忙

0

php寫入檔案時用 \n ,不會跳行,哪裡有問題?

php

我有PHP執行上的問題,請大家幫幫忙,謝謝。

php跑的是主機 0lx.net

php directives 的
magic_quotes_gpc 功能設為 on off都依樣,不能換行。

phpinfo出來的資料::
<://gcyber.0lx.net/echo.php>

這是照著跑程式,參考的網頁::跑出來結果不依樣!?
http://dreamtails.pixnet.net/blog/post/23934218-php%E5%B0%87%E5%AD%97%E4%B8%B2%E5%AF%AB%E5%85%A5%E6%AA%94%E6%A1%88
這是輸入後的網頁
http://gcyber.0lx.net/css.php

這是寫入的檔案
http://gcyber.0lx.net/css.txt

這是線上編輯php寫入的程式碼.
存檔後,再叫出來編輯,中文字會變亂碼也是個問題。

&lt;link rel=stylesheet type="text/css" href="css.txt">
&lt;div>

&lt;?php
$Name=$_POST[Name];
$spe=$_POST[s];
echo ' The Name: '.$Name;
echo '&lt;hr>';
echo 'setrwax:   '.$s;
$gt=$Name;
$fp = fopen('css.txt',$s);

//"?ڜr\n?R\r\n?p"?h?O?n?g?J???妲
//?ӦbWindows?t?ΤU???妲??|?⦱uot;\r\n"???u??v
fwrite($fp,$gt);
//fputs($fp,$Name);
fclose($fp);
//$fp = fopen('css.txt','a+');
//$an=$Name;
//fwrite($fp,$Name);
//fputs($fp,$an);
//fclose($fp);
echo '&lt;hr> echo readfile css.txt>>>';
echo readfile("css.txt");
echo '&lt;hr>  readfile css.txt>>>';

readfile("css.txt");

echo '&lt;hr>';
?>
&lt;hr>&lt;br>
&lt;a href='css.txt'> check css.txt&lt;/a>

&lt;textarea rows=26 cols=116>
fopen fwrite fclose 
fputs
readfile
w will emty all content
a+ will add content


&lt;/textarea>
fillano iT邦超人 1 級 ‧ 2014-12-29 13:13:34 檢舉
換行不關magic_quotes_gpc的事吧XD

2 個回答

6
weiclin
iT邦高手 4 級 ‧ 2014-12-29 12:19:09

因為 \r\n 這類的東西並不是真正的換行符號
php 在建立字串時, 會把 \r\n 替換成真正的換行符號
而你從網頁輸入時, 網頁並沒有這樣替換的功能
所以你需要換行時, 你要用 enter 讓文字真的跳到下一行去
也因此你要用支援多行的輸入方法, 例如 textarea

又當你要把換行的東西顯示到網頁上的時候, 你還需要把換行符號替換成<br>
不然 html 大部分情況是不理換行的

另外亂碼的問題, 單純是你沒有把編碼固定下來, 建議用 utf8
這個寫起來又是一大堆了, 先自己查一下, 有問題再說吧

2
kerryking
iT邦新手 5 級 ‧ 2014-12-30 09:52:46

但是在 文字輸入欄位: <input type="text" name="Name">
放入: 我\r\n愛\r\n妳 ..再送出,就不會換行..

<input type="text" name="Name"> 是單行文字元件汗汗
應該是用textarea才可以換行吧

我要發表回答

立即登入回答