2015-01-13 84 views
2

我該如何在PHP中編寫此代碼? 我嘗試了幾件事情,但它不會工作。 你能幫我嗎?Javascript拆分並加入PHP

return s.split(/\r?\n/).join("<br>"); 

謝謝!

+2

PHP有'split'和'join'函數,但它們被棄用爲更廣泛使用的'explode'和'implode'函數的別名。 http://php.net/split –

回答

2

它看起來像你使用正則表達式。這個怎麼樣

echo implode(preg_split('/\r?\n/', $s), '<br>'); 
+0

Thx for ur help guys。但這對我有用。 –

+2

如果換行符只是'\ r'(Mac文件),這不起作用。 – Toto

0

你可以這樣寫:曾經有splitjoin功能

return implode("<br />", explode("\r\n", s)); 
+0

檢查正則表達式:'\ r'是可選的,添加'str_replace'並在'\ n'上爆炸而不是 –

2

PHP,但他們不贊成正在爲更廣泛的使用explodeimplode功能別名。 RTM

你正在試圖做可以使用implodeexplodestr_replace做什麼。後者應取代任何\r字符(因爲它們是可選的)。然後你可以用\n作爲分隔符explodeimplode它再次使用<br>。但是,這將意味着調用3種功能,這是一個有點多餘考慮有一個單獨的函數,它正是你需要:nl2br

return implode(
    '<br/>', 
    //split on \n 
    explode(
     "\n", 
     //remove any \r chars 
     str_replace(
      "\r", 
      '', 
      $s 
     ) 
    ) 
); 
//The results are the same as this clean, simple one-liner 
return nl2br($s); 

鉈; TR

使用nl2br,它是那樣簡單那樣,它會按照你想要的來完成,只需要最少的努力。

1

我會怎麼做:

return implode("<br />", explode("\R", $s)); 

凡使用\R代表任何線路中斷,\n\r\r\n