[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощь с регуляркой
igor2011
В тексте внутри квадратных скобок нужно заменить тег <br> перенос строки \n
Использую такую регулярку, которую мне любезно подсказал Winston


$ishodnick = preg_replace('#(\[.*)<br>(.*\])#isU', '$1\n$2', $ishodnick);


Все работает, пока внутри скобок один тег <br>. Если тегов больше то заменяется только первый.
Что не так? И что сделать чтобы заменялись все теги?
Winston
Цитата (igor2011 @ 31.05.2013 - 07:16)
Если тегов больше то заменяется только первый.

Действительно....
Тогда вот так
$ishodnick = preg_replace_callback('#(\[.*\])#sU', function($item){return str_replace('<br>', "\n", $item[1]);}, $ishodnick);
igor2011
Цитата (Winston @ 31.05.2013 - 06:00)
Цитата (Winston @ 31.05.2013 - 07:16)
..
Тогда вот так
$ishodnick = preg_replace_callback('#(\[.*\])#sU', function($item){return str_replace('<br>', "\n", $item[1]);}, $ishodnick);






Winston, такая строка выдает ошибку :

Parse error: syntax error, unexpected T_FUNCTION in /home/tpozorni/public_html/admin/unik_subzakaz.php on line 166
Winston
Цитата (igor2011 @ 31.05.2013 - 09:45)
такая строка выдает ошибку :

Видимо у тебя PHP < 5.3
Тогда так
function foo($item)
{
return str_replace('<br>', "\n", $item[1]);
}

$ishodnick = preg_replace_callback('#(\[.*\])#sU', 'foo', $ishodnick);
igor2011
Winston, спасибо. Все работает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.