2012-07-11 36 views
0

我有一個帶有textarea的頁面,內容被保存到數據庫中。
內容如下:我應該使用哪一行結尾字符?

before 
-------------- 
after 

現在我需要將文本拆分成「之前」和「之後」 - 沒有任何新的生產線的跡象。

所以我的問題是:
關於EOL角色取決於什麼?在一個平臺上用戶
一)正在運行一個數據庫服務器平臺上
B)上的PHP服務器的平臺
C)

是否有更好的跨平臺解決方案?

$string_exploded = explode("\n". $delimiter. "\n", $string); 

if(count($string_exploded) === 1) 
{ 
    $string_exploded = explode("\r\n". $delimiter. "\r\n", $string); 
} 

謝謝大家的答案

回答

3

您應該使用PHP_EOL。這將符合機器正確的行結束。

如果您只是從數據庫中提取數據,則應該使用與之相同的字符進行爆炸。

即使您擔心在字符串末尾留有空白,之後只需使用trim即可滿足您的需求。

+0

如果你不打算在平臺之間移動文件,PHP_EOL是完美的。否則,您將不得不手動使用目標平臺的行結束字符。但否則,發現。 +1。 – 2012-07-11 19:19:54

+0

修剪絕對是最好的解決方案 – 2012-07-12 10:57:19

0

另一種解決方案是,如果您不想擔心數據庫中會出現哪些行結束符,則可以使用preg_split()來代替。

事情是這樣的:

$string_exploded = preg_split('/(\\n|\\r\\n)' . $delimiter . '(\\n|\\r\\n)/', $string); 

這樣做,你可以使用PREG_SPLIT_NO_EMPTY,系統將自動丟棄任何空項,如果你的數據可能包含之間沒有數據雙分隔符的好處。

相關問題