Есть такой текст: "текст текст текст текст текст [img1]One[/img1] текст текст текст текст текст текст текст текст [img2]Two[/img2]". С этой страницы берётся её номер и выводиться подобное. Страница 3: "текст текст текст текст текст текст текст текст <img src="3_1.jpg" alt="One" /> текст текст текст текст текст текст текст текст <img src="3_2.jpg" alt="Two" />". Сделано это с помощью str_replace так как количество картинок ограничено ([img1] до [img9]). Есть ли другие предложения по поводу кода? Нужно ли здесь применять регулярные выражения?
PHP: <?php echo preg_replace('%\[img(\d+)\](.*)\[/img\d+\]%Ui', '<img src="3_$1" alt="$2"/>', $str); ?>
Класс, спасибо. Только ещё раз нарушу правила и попрошу - на форумах всегда есть возможность написать ссылка. Я с регулярными вообще очень плохо дружу всё как-то с MySQL приходиться. Как заменить http://ya.ru на <a href="http://ya.ru" target="_blank">http://ya.ru</a>?
PHP: <?php $url = "бла бла [url]http://уа.ru[/url] бла"; echo preg_replace("%\[url\](.*)\[/url\]%Ui", "<a href=\"$1\" target=\"_blank\">$1</a>", $url); ?>
:idea: А если усложнить задачу? На форумах (как раз сейчас занимаюсь) бывает для ссылок и такая конструкция: [ url=http: // www . адрес такой-то . com] А здесь какой-то текст для ссылки [/ url ] Используем такое выражение: Код (Text): preg_replace ("%\[url=(.*)\](.*)\[/url\]%Ui", "<a href=\"$1\" target=\"_blank\">$2</a>", $f['MsgText']); А вот кто подскажет, как сделать так, чтобы выражение внутри [ url ] [ /url ] могло содержать перевод строки? Чтой-то никак не допру... :?: