Relige
Новичок
preg_replace неожиданная проблема
Собственно стоит задача такая - добавить bbcode [plus=,header=]text[/plus]
plus=тут должен стоять какой-то номер, а скрипт должен к нему добавлять ID новости. Например:
Посылаем:
[plus=1,header=Ops]Text[/plus]
Получаем на выходе готовый html код, учитывая, что ID новости 500
<a href="javascript:swap(500.1);">Ops text</a>
А теперь сам вопрос. Написал две функции. Одна достает из SQL таблицы ID новости и текст, который содержит bbcode и отдает в другую.
function nor_bbcode($text,$id="empty")
{
$text = preg_replace("=\[plus\=(.*?),header\=(.*?)\](.*?)\[/plus\]=is", "<a href=\"javascript:swap($id.$1);\">$2 $3</a>", $text);
return $text;
}
Проблема в том, что вместо $id ничего не выводится. Даже пробел. При попытке сделать $text = $id для проверки получает ли функция вообще $id, все сработало, то есть функция получает коректный $id.
Если верить функции, которая возвращает тип переменной, то тип $id - string, что тоже соответствует спецификации функции preg_replace. Так в чем тогда проблема-то? Никак не пойму.
Собственно стоит задача такая - добавить bbcode [plus=,header=]text[/plus]
plus=тут должен стоять какой-то номер, а скрипт должен к нему добавлять ID новости. Например:
Посылаем:
[plus=1,header=Ops]Text[/plus]
Получаем на выходе готовый html код, учитывая, что ID новости 500
<a href="javascript:swap(500.1);">Ops text</a>
А теперь сам вопрос. Написал две функции. Одна достает из SQL таблицы ID новости и текст, который содержит bbcode и отдает в другую.
function nor_bbcode($text,$id="empty")
{
$text = preg_replace("=\[plus\=(.*?),header\=(.*?)\](.*?)\[/plus\]=is", "<a href=\"javascript:swap($id.$1);\">$2 $3</a>", $text);
return $text;
}
Проблема в том, что вместо $id ничего не выводится. Даже пробел. При попытке сделать $text = $id для проверки получает ли функция вообще $id, все сработало, то есть функция получает коректный $id.
Если верить функции, которая возвращает тип переменной, то тип $id - string, что тоже соответствует спецификации функции preg_replace. Так в чем тогда проблема-то? Никак не пойму.