ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (1): [1]   

> Без описания
Gori
Отправлено: 29 августа 2015 — 07:41
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Сент. 2013  
Репутация: 2




Есть функция:
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)

 
 
1Bot
Отправлено: 29 августа 2015 — 13:39
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Gori пишет:
хочу чтобы не все новые строчки переделывались в абзацы, чтобы когда два переноса - был абзац, а когда один перенос - был <br>.

CODE:
function nl2p($string) {
$s = "|\r\n|";
$d = "</p>\n<p>";
$string = "<p>". preg_replace($s, $d, $string) ."</p>";
$string = str_replace('<p></p>', '<br/>', $string);
return $string;
}
 
 
Gori
Отправлено: 29 августа 2015 — 15:45
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Сент. 2013  
Репутация: 2




1Bot , выводит теперь так:

CODE:
<p>Я мечтою ловил уходящие тени, </p>
<p>Уходящие тени погасавшего дня, </p>
<p>Я на башню всходил, и дрожали ступени, </p>
<p>И дрожали ступени под ногой у меня.</p>
<br/>
<p>И чем выше я шел, тем ясней рисовались, </p>
<p>Тем ясней рисовались очертанья вдали, </p>
<p>И какие-то звуки вокруг раздавались, </p>
<p>Вкруг меня раздавались от Небес и Земли.</p>
<br/>
<p>Чем я выше всходил, тем светлее сверкали, </p>
<p>Тем светлее сверкали выси дремлющих гор, </p>
<p>И сияньем прощальным как будто ласкали, </p>
<p>Словно нежно ласкали отуманенный взор.</p>
<br/>
<p>А внизу подо мною уж ночь наступила, </p>
<p>Уже ночь наступила для уснувшей Земли, </p>
<p>Для меня же блистало дневное светило, </p>
<p>Огневое светило догорало вдали.</p>
<br/>
<p>Я узнал, как ловить уходящие тени, </p>
<p>Уходящие тени потускневшего дня, </p>
<p>И все выше я шел, и дрожали ступени, </p>
<p>И дрожали ступени под ногой у меня.</p>
 
 
Gori
Отправлено: 1 сентября 2015 — 16:46
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Сент. 2013  
Репутация: 2




Помогли сдлать.

Делюсь тут рабочим кодом:

CODE:
$string = '<p>'.str_replace(["\r\n\r\n", "\n\n", "\r\r"], '</p><p>', $string).'</p>';
$string = str_replace(["\r\n", "\n", "\r"], '<br>', $string);


Работает в PHP 5.6
В ранних скобки не понимает.
 
 
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« PHP/Perl »

> Похожие темы: Помогите доделать функцию создания абзацев
Темы Форум Информация о теме Обновление
Информер для чата блочится адблоком
Помогите исправить
Мусорка Ответов: 1
Автор темы: Guyver
7 апреля 2024 — 12:11
Автор: Guyver
RSS виджет на главной форума
Помогите найти простой скрипт
Мусорка Ответов: 1
Автор темы: Guyver
3 октября 2022 — 03:51
Автор: Guyver
Дополнение: Создание нового пользователя
Добавляет в админку кнопку для создания нового пользователя
Модификации и дополнения Ответов: 1
Автор темы: NordWest
10 апреля 2018 — 09:41
Автор: NordWest
Странный спамер
Что делать? Помогите...
Мусорка Ответов: 5
Автор темы: Guyver
30 июля 2024 — 11:03
Автор: Flat
Отображение ссылок в постах
Помогите разобраться
Решение проблем Ответов: 17
Автор темы: Parapsixolog
2 января 2016 — 22:11
Автор: Parapsixolog
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0911]     [ ]