2015-01-13 6 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 для ур помочь ребятам. но это работает для меня. –

+2

Это не работает, если разрыв строки - это только '\ r' (файлы Mac) – Toto

0

Вы можете написать так:

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

Проверьте регулярное выражение: '\ r' является необязательным, добавьте' str_replace' и взорвется на '\ n' вместо –

2

PHP используется, чтобы split и join функции, но они устарели как псевдонимы для гораздо шире используемых explode и implode функций. RTM

То, что вы пытаетесь сделать может быть сделано с помощью implode, explode и str_replace. Последний должен заменить любые символы \r (видя, что они являются необязательными). Затем вы можете указать explode строку, используя \n в качестве разделителя, и implode снова с использованием <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); 

Tl; TR

использование nl2br, это так просто, как это, и он будет делать именно то, что вы хотите, с минимальными затратами усилий.

1

Я хотел бы сделать:

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

Где \R стенды для любой линии разрыва, \n или \r или \r\n

Смежные вопросы