簡體   English   中英

替換新行| PHP

[英]Replace new line | PHP

我正在開發一個腳本,它使用file_get_contents()從網頁獲取所有內容,然后刪除所有HTML,JavaScript和CSS格式並將其存儲在變量中。

然后我將PHP變量分配給JavaScript變量。 現在我的問題是文本(我已分配給JavaScript var)包含許多新行,這使我在運行程序時出現JavaScript錯誤。

簡單的str_replace("\\n", "", $text); 不適合我。 我也試過ltrimtrimrtrim

您正在為JavaScript變量分配字符串,您可以使用json_encode

像這樣:

<script type="text/javascript">
var g_text = <?php echo json_encode($text); ?>;
</script>

注意:您也可以通過這種方式將數組和數字傳遞給JavaScript。

你只需要一個電話:

$string = str_replace(array("\r", "\n"), '', $string);

要么

$string = strtr($string, "\r\n", '');

不需要多次調用,或者有多種組合...但它仍然需要處理3種可能的行結束序列(Windows \\r\\n ,Linux \\n ,Mac \\r \\n )...

你試過str_replace("\\r\\n", "", $text);

試試這個代碼。 它取代了所有操作系統中所有可能的換行符。

str_replace("\r\n", "", $text); // Replace CR+LF
str_replace("\r", "", $text);   // Replace CR
str_replace("\n", "", $text);   // Replace LF

我想存儲的字符串包含html,對吧? 如果需要,可以使用nl2br將\\ n轉換為BR標記。

僅供參考:請記住在搜索/替換換行符時始終使用雙引號。 如果您使用單引號,例如:

print str_replace(array('\n', '\r\n', '\r'), '', $strBorked);

它永遠不會奏效! 你必須使用:

print str_replace(array("\n", "\r\n", "\r"), '', $strBorked);

這是因為PHP不解釋單引號內部,而\\ n是一個字符php只在雙引號內轉換為文字換行符。 這當然適用於所有控制字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM