alex-v1
Новичок
не хватает памяти при многократном присваивании переменной большого объёма текста?
есть функция преобразования BB-кодов (код ниже).
если на вход функции подать не очень большой текст, то всё нормально - он выводить в браузер без проблем. Но если на вход подать достаточно большой текст, то функция эта ничего не выводит в браузер - пусто и всё. В чём проблема? подскажитье.
я думаю что памяти не хватает, т.к. в функции немало строчек форматирования текста и присваивания его переменной $msg. Пробовал уменьшить количество $msg=str_replace и $msg=preg_replace строчек в коде и тогда текст выводится... такая проблема. Как её решить?
есть функция преобразования BB-кодов (код ниже).
если на вход функции подать не очень большой текст, то всё нормально - он выводить в браузер без проблем. Но если на вход подать достаточно большой текст, то функция эта ничего не выводит в браузер - пусто и всё. В чём проблема? подскажитье.
я думаю что памяти не хватает, т.к. в функции немало строчек форматирования текста и присваивания его переменной $msg. Пробовал уменьшить количество $msg=str_replace и $msg=preg_replace строчек в коде и тогда текст выводится... такая проблема. Как её решить?
PHP:
function show_message($msg)
{
global $img_dir;
$msg = str_replace("\n",'<br />', trim($msg));
// отступ
$msg = str_replace("[indent]",' ', $msg);
// цитата
$msg = preg_replace('/\[quote="([^\[]+)"\]/i', '<div align="center"><table cellspacing="0" cellpadding="2" class=quote_table><tr><td class=head_quote_cell><font class=head_quote_font>цитата собеседника "\\1"</font></td></tr><tr><td class=msg_quote_cell><font class=msg_quote_font>', $msg);
$msg = str_replace("[/quote]",'</font></td></tr></table></div>',$msg);
// жирный
$msg = str_replace("[b]",'<b>',$msg);
$msg = str_replace("[/b]",'</b>',$msg);
// наклон
$msg = str_replace("[i]",'<i>',$msg);
$msg = str_replace("[/i]",'</i>',$msg);
// подчеркнут
$msg = str_replace("[uu]",'<u>',$msg);
$msg = str_replace("[/uu]",'</u>',$msg);
// цвет шрифта
$msg = preg_replace('/\[color="([^\[]+)"\]/i', '<font color="\\1">',$msg);
$msg = str_replace("[/color]",'</font>',$msg);
// размеры шрифта
$msg = preg_replace('/\[size="([^\[]+)"\]/i', '<font size="\\1">',$msg);
$msg = str_replace("[/size]",'</font>',$msg);
// гипер-ссылка
$msg = preg_replace('/\[url="([^\[]+)"\]/i', '<a href="\\1">',$msg);
$msg = str_replace("[/url]",'</a>',$msg);
// выравнивание
$msg = preg_replace('/\[align="([^\[]+)"\]/i', '<div align="\\1">',$msg);
$msg = str_replace("[/align]",'</div>',$msg);
// изображение
$msg = preg_replace('/\[img="([^\[]+)"\]/i', '<img src="'.$img_dir.'\\1">',$msg);
echo('<font class=default_msg_font>'.$msg.'</font>');
}