我正在使用 php 訪問 html 檔案
$file = file("index.html");
然后我正在使用
file_put_contents( "index.html", implode(PHP_EOL, $file) );
但是這里發生了什么?!...到處都是新行...檔案現在大得多,沒用的新行!
如果我做:
file_put_contents( "index.html", implode("", $file) );
問題已解決...
但如果我修改陣列$file,我添加的任何內容都將在同一行。我無法添加新值。這里發生了什么?!
不知何故,檔案中的字串在其中編碼了新行......而我添加的任何字串都沒有。
例如:一個 10 行的檔案會有一堆文本。如果我讀取檔案并獲得一個包含 10 個值的陣列,然后添加 11... 使用 implode("", $file) ); 會給... 10行!
我的第 11 個值怎么了?它將在同一條線上!
這怎么可能?!這里發生了什么?!
uj5u.com熱心網友回復:
默認情況下,file()將換行符保留在它在陣列中回傳的字串中。如果在每行之間添加另一個換行符,則會得到雙倍行距implode()。如果您向陣列添加其他元素,但不以換行符結束它們,您將得到不一致的結果。
您可以使用FILE_IGNORE_NEW_LINES標志告訴它洗掉這些。
$file = file("index.html", FILE_IGNORE_NEW_LINES);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/505061.html
