Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с функцией bbCode
 
 автор: Webmaster-x   (08.08.2006 в 15:12)   письмо автору
 
 

Пишу функцию с ббкодом:

К примеру есть переменная
<?
$message="[коментарий]";
//функция
function bbcod($emsg)
{
global $message;
$emsg = preg_replace("#\[b\](.*?)\[/b\]#si", "<span style=\"font-weight:bold\">\\1</span>", $emsg);
}

echo"$message";
?>

помогите правильно оформить.
Я токо начал употреблять функции и чёто не получается :-((

   
 
 автор: RV   (08.08.2006 в 15:29)   письмо автору
 
   для: Webmaster-x   (08.08.2006 в 15:12)
 

http://forum.dklab.ru/php/heap/PravilniyParsingBbcode.html

   
 
 автор: Webmaster-X   (08.08.2006 в 16:06)   письмо автору
 
   для: RV   (08.08.2006 в 15:29)
 

дело даже не в ббкоде а в правильности написании функции
в начале первого сообщения

<?
$message
="[в]коментарий[/в]";
//функция

   
 
 автор: cheops   (08.08.2006 в 21:43)   письмо автору
 
   для: Webmaster-x   (08.08.2006 в 15:12)
 

Чего-то не очень понятна роль переменной $message - она же вроде вообще никак не затрагивается функцией? Преобразованию подвергается параметр $emsg.

   
 
 автор: Webmaster-X   (09.08.2006 в 13:50)   письмо автору
 
   для: 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   (10.08.2006 в 15:27)   письмо автору
 
   для: Webmaster-X   (09.08.2006 в 13:50)
 

Подскажите чё здесь можна исправить или как правильно написать

   
 
 автор: cheops   (10.08.2006 в 17:55)   письмо автору
 
   для: 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
?>

   
 
 автор: Webmaster-X   (12.08.2006 в 16:40)   письмо автору
 
   для: 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); //вывожу переобразованный текст
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования