@Bestolkovy

Оптимально ли написан код?

Добрый день!

Мне очень понравилась идея, которую придумал habrahabr.ru не расставлять теги параграфа в контенте.

Потратив 3 дня и задолбав весь toster.ru, родился такой код:

// Расставляем в конце каждой строки тег <br>
$content = preg_replace( '/\r?\n/miu', "<br>\r\n", $content );

// Убираем все теги <br>, которые находятся внутри контейнера <pre>...</pre>
$content = preg_replace_callback(

  '/<pre[^>]*?>([\s\S]*?)<\/pre>/miu',

  function ( $matches ) {
    return preg_replace( '/<br>/miu', '', $matches[0] );
  },

  $content

);

// Убираем лишние пустые строки с тегом <br>
$content = preg_replace( '/(<br>)(\s*\1)+/miu', "<br>\r\n<br>", $content );


Скажите новичку, можно ли его ещё как-нибудь оптимизировать? Или это оптимальное решение?
  • Вопрос задан
  • 299 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) для таких вещей не очень удобно использовать регулярки. Разбирать xml/html регулярками вообще вредно
2) логичнее в тег pre ничего не добавлять что бы ненароком не удалить лишнего. Вдруг там по замыслу автора уже стоял тег
.
3) проще сразу убрать лишние строки или еще круче - завернуть их в параграфы.
Ответ написан
BuriK666
@BuriK666
Компьютерный псих
вместо
preg_replace( '/\r?\n/miu', "<br>\r\n", $content );
есть nl2br
Ответ написан
romy4
@romy4
Exception handler
Оптимальность — это многофакторная метрика. Если выполняет задачу, выполняет быстро, то почему бы и нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы