我在php中有一個很長的字符串,它不包含新行('\ n')。PHP沒有換行的長字符串
我的編碼約定不允許超過100個字符的行。
有沒有辦法將我的長字符串拆分爲多行而不使用。操作符的效率較低 - 我不需要連接2個字符串,因爲它們可以作爲單個字符串給出 。
謝謝!
Ÿ
我在php中有一個很長的字符串,它不包含新行('\ n')。PHP沒有換行的長字符串
我的編碼約定不允許超過100個字符的行。
有沒有辦法將我的長字符串拆分爲多行而不使用。操作符的效率較低 - 我不需要連接2個字符串,因爲它們可以作爲單個字符串給出 。
謝謝!
Ÿ
你可以從字符串中去除換行符:
$myStr = "
here is my string
and it is spread across multiple lines
";
$myStr = str_replace("\n", "", $myStr);
您應該仍然使用連接運算符(。)來處理這些事情。如果您使用操作碼緩存(APC),則此處的性能損失可以忽略不計,並且在將DB訪問和附加邏輯(包括循環)帶入運行時方程時,這實際上不會有任何意義。
更新:
下面舉一個讀的頁面。上面的結論在文本中並不容易獲得,但仔細的檢查應該表明它是有效的。
http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html
操作碼緩存如何影響字符串連接的速度? – 2009-08-18 12:12:04
解析器會將沒有動態元素的字符串視爲一個長字符串,從而刪除並置運算符。前段時間我已經深入瞭解了這個主題。一旦我設法再次找到它,將用相關文章更新這個答案。 – 2009-08-18 13:35:23
這是正確的代碼,就解決所有問題:
$myStr = "
here is my string
and it is spread across multiple lines
";
$myStr = str_replace(array("\r","\n"), "", $myStr);
它是基於利奧爾·科恩的答案,但它也去掉回車「\ r」。
heredoc的問題是,它將在字符串中包含換行符,然後必須將其刪除以獲取指定問題的「不包含換行符的字符串」。 – Amber 2009-08-18 12:07:37
你可以像Lior顯示的那樣去除它們 – 2009-08-18 12:13:06
是的,然而這也會像使用連接一樣產生性能問題。 – Amber 2009-08-18 12:19:41