|
|
|
| Пишу функцию с ббкодом:
К примеру есть переменная
<?
$message="[коментарий]";
//функция
function bbcod($emsg)
{
global $message;
$emsg = preg_replace("#\[b\](.*?)\[/b\]#si", "<span style=\"font-weight:bold\">\\1</span>", $emsg);
}
echo"$message";
?>
помогите правильно оформить.
Я токо начал употреблять функции и чёто не получается :-(( | |
|
|
|
|
|
|
|
для: Webmaster-x
(08.08.2006 в 15:12)
| | http://forum.dklab.ru/php/heap/PravilniyParsingBbcode.html | |
|
|
|
|
|
|
|
для: RV
(08.08.2006 в 15:29)
| | дело даже не в ббкоде а в правильности написании функции
в начале первого сообщения
<?
$message="[в]коментарий[/в]";
//функция
|
| |
|
|
|
|
|
|
|
для: Webmaster-x
(08.08.2006 в 15:12)
| | Чего-то не очень понятна роль переменной $message - она же вроде вообще никак не затрагивается функцией? Преобразованию подвергается параметр $emsg. | |
|
|
|
|
|
|
|
для: cheops
(08.08.2006 в 21:43)
| | изввеняюсь, я неправильно изложил суть проблемы!
<?
//функция написана с моего соображения но она не работает
function bbcod($emsg)//
{
global $message;
$emsg = preg_replace("#\[В\](.*?)\[/В\]#si", "<span style=\"font-weight:bold\">\\1</span>", $emsg);
}
$message="[В]коментарий[В]"; //переменная которую я хочю переобразовать
bbcod($message); //здесь я хочу переобразоввать переменую $message
//вот здесь и возникает проблема, функция не работает
echo"$message";
?>
|
подскажите как правильно написать так чтоб любые переменные переобразовывались функцией так как в одном скрипте должно обрабатываться две переменные, а писать ббкод для каждой както неактуально | |
|
|
|
|
|
|
|
для: Webmaster-X
(09.08.2006 в 13:50)
| | Подскажите чё здесь можна исправить или как правильно написать | |
|
|
|
|
|
|
|
для: Webmaster-X
(09.08.2006 в 13:50)
| | Нет, так не пойдёт, у вас переменная $message никак не затрагивается в функции bbcod(), лучше вернуть результат при помощи оператора return (глобальные переменные используются только в случае крайней необходимости - у вас не тот случай) и переписать скрипт следующим образом
<?
//функция написана с моего соображения но она не работает
function bbcod($emsg)//
{
return preg_replace("#\[В\](.*?)\[/В\]#si", "<span style=\"font-weight:bold\">\\1</span>", $emsg);
}
$message="[В]коментарий[В]"; //переменная которую я хочю переобразовать
$message = bbcod($message); //здесь я хочу переобразоввать переменую $message
//вот здесь и возникает проблема, функция не работает
echo $message;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.08.2006 в 17:55)
| | cheops спасибо
я сделал так
<?
function bbcod($emsg)
{
$emsg = preg_replace("#\[br\]#si", "<br />", $emsg);
$emsg = preg_replace("#\[hr\]#si", "<hr noshade color=\"#000000\" size=\"1\">", $emsg);
$emsg = preg_replace("#\[b\](.*?)\[/b\]#si", "<span style=\"font-weight:bold\">\\1</span>", $emsg);
$emsg = preg_replace("#\[I\](.*?)\[/I\]#si", "<span style=\"font-style:italic\">\\1</span>", $emsg);
$emsg = preg_replace("#\[s\](.*?)\[/s\]#si", "<s>\\1</s>", $emsg);
$emsg = preg_replace("#\[big\](.*?)\[/big\]#si", "<big>\\1</big>", $emsg);
$emsg = preg_replace("#\[small\](.*?)\[/big\]#si", "<small>\\1</big>", $emsg);
$emsg = preg_replace("#\[pre\](.*?)\[/pre\]#si", "<pre>\\1</pre>", $emsg);
$emsg = preg_replace("#\[sub\](.*?)\[/sub\]#si", "<sub>\\1</sub>", $emsg);
$emsg = preg_replace("#\[sup\](.*?)\[/sup\]#si", "<sup>\\1</sup>", $emsg);
$emsg = preg_replace("#\[table\](.*?)\[/table\]#si", "<table>\\1</table>", $emsg);
$emsg = preg_replace("#\[tr\](.*?)\[/tr\]#si", "<tr>\\1</tr>", $emsg);
$emsg = preg_replace("#\[td\](.*?)\[/td\]#si", "<td>\\1</td>", $emsg);
$emsg = preg_replace("#\[move\](.*?)\[/move\]#si", "<marquee>\\1</marquee>", $emsg);
// и так далее
print $emsg;
}
$message="[В]коментарий[В]";
bbcod($message); //вывожу переобразованный текст
?>
|
| |
|
|
|