[英]Replace new line | PHP
我正在開發一個腳本,它使用file_get_contents()
從網頁獲取所有內容,然后刪除所有HTML,JavaScript和CSS格式並將其存儲在變量中。
然后我將PHP變量分配給JavaScript變量。 現在我的問題是文本(我已分配給JavaScript var)包含許多新行,這使我在運行程序時出現JavaScript錯誤。
簡單的str_replace("\\n", "", $text);
不適合我。 我也試過ltrim
, trim
, rtrim
。
您正在為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.