Есть функция:
CODE:function nl2p($string) {
$s = ("|\r\n|");
$d = ("</p>\n<p>");
$string = "<p>". preg_replace($s, $d, $string) ."</p>";
$string = str_replace('<p></p>', '', $string);
return $string;
}
Очень полезная фунция.
Каждый перенос строки она переделывает в новый абзац, т.е. помещает фрагмент текста в теги <p></p>
Допустим я ввёл текст:
CODE:
Бла бла бла и бла бла бла.
Тум пурум пурум пурум.
Ля ля ля.
Результатом будет:
CODE:
<p>Бла бла бла и бла бла бла.</p>
<p>Тум пурум пурум пурум.</p>
<p>Ля ля ля.</p>
В отличие от функции "nl2br" которая создаёт тупо однии <br>, эта функция делает контент более статейным разделяя его как и положено на абзацы.
Но есть проблема.
Допустим я хочу чтобы не все новые строчки переделывались в абзацы, чтобы когда два переноса - был обзац, а когда один перенос - был <br>.
Т.е. если я ввожу вот так (один перенос):
CODE:
Бла бла бла и бла бла бла.
Тум пурум пурум пурум.
Ля ля ля.
То эта фунция всё равно мне всё оформит в теги <p></p>:
CODE:
<p>Бла бла бла и бла бла бла.</p>
<p>Тум пурум пурум пурум.</p>
<p>Ля ля ля.</p>
А мне нужно чтобы это было как положено, т.е. вот так:
CODE:
<p>Бла бла бла и бла бла бла.<br>
Тум пурум пурум пурум.<br>
Ля ля ля.</p>
Сам я никогда не решу эту задачу. Может быть поможет кто?(Отредактировано автором: 29 августа 2015 — 07:42) |