Отправляет email-рассылки с помощью сервиса Sendsay

PHP без проблем

  Все выпуски  

PHP без проблем: обработка строк


Привет всем, кто к нам присоединился и тем, кто уже с нами! Сегодня будем обрабатывать строки с использованием регулярных выражений, а кто имеет свои пожелания – прошу в блог, там Вы всегда можете их высказать.

Обработка строк.

Начнем с того, что часто бывает необходимо разбивать текст на абзацы при помощи html-тегов. Воспользуемся функциями PHP для работы с регулярными выражениями.
1. Возьмем строку
2. Заменим символы переноса строки на «</p><p>» и поместим саму строку между <p> и </p>

function nl2p($str) {
$str = '<p>'.preg_replace ('/\r\n|\n|\r/', '</p>$0<p>', $str).'</p>';
return $str;
}

Таким нехитрым образом мы разбили строку на абзацы, но при этом могли случайно засорить ее лишними «<p></p>», если в нашей строке было несколько переносов подряд. Их, конечно, нужно удалить, пусть переносы строки, если их несколько, остаются сами собой. Конечный вариант:

function nl2p($str) {
$str = '<p>'.preg_replace ('/\r\n|\n|\r/', '</p>$0<p>', $str).'</p>';
$str = preg_replace ('/<p><\/p>/', '', $str);
return $str;
}

Еще часто приходится, например, выделять комментарии в коде другим цветом. В PHP, например, в качестве предваряющих комментарии символов используются «//». Этим и воспользуемся:

function cm2color($str) {
$str = preg_replace ('/\r\n|\n|\r/', '<br>', $str);
$str = preg_replace ('/\/\/(\w+\s)+/', '<font color=red>$0</font>', $str);
return $str;
}

Вначале мы для красоты заменили перенос строки на «<br>», затем заменили все строки, начинающиеся с «//», на аналогичные, но красного цвета (а что, стильно:). Здесь, конечно, могут появиться и лишние выделения, но это уже, как говорится, дело интимное.

Регулярные выражения, как Вы могли заметить, предоставляют широчайшие возможности строк и даже массивов, хотя изучение синтаксиса довольно трудоемко. В любом случае применять их приходится довольно часто.

Если Вам интересно узнать, как можно соорудить из этих и многих других функций что-либо приличное (публикатор статей), оставляйте свои вопросы, пожелания, комментарии, критику в блоге (ссылка справа, вверху), думаю, он возражать не станет)


В избранное