BB КОД *CODE*

Печать RSS
412


2000 лет д.н.э.
0
<?
//--- функция обработки Url ---//
function url_replace($m){
  if(!isset($m[3])){
          if(preg_match('|^http:\/\/'.$_SERVER['HTTP_HOST'].'|si',$m[1])){
return '<a href="'.$m[1].'">'.$m[2].'</a>';
           }else{
 return '<a href="'.$m[1].'"target="_blank">'.$m[2].'</a>';
           
    }
    
  }else{
$m[4] = (mb_strlen($m[3], 'utf-8')>70)  ? mb_substr($m[3], 0, 35, 'utf-8').'...'.mb_substr($m[3], -15, 15, 'utf-8') : $m[3];
    
          if(preg_match('|^http:\/\/'.$_SERVER['HTTP_HOST'].'|si',$m[3])){
return '<a href="'.$m[3].'">'.$m[4].'</a>';
          }else{
return '<a href="'.$m[3].'" target="_blank">'.$m[4].'</a><';
          }
    
  }
  
}

?>

Добавлено через 01:27 сек.
<?
// ------- BB Code ------- //
function bb($str){
   $str = preg_replace('#\[code\](.*?)\[/code\]#sie', 'highlight_code("\1")', $str);
   $str = preg_replace_callback('~\\[url=(https?://.+?)\\](.+?)\\[/url\\]|(https?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~i', 'url_replace', $str);
}

?>
использовать так
<?
echo bb($text);
 ?>
Изменил: ramzes (11.03.2012 / 23:07)
Д

Пацак
0
А кто знает, как при помощи Geshi сделать подсветку синтаксиса?
А
Автор
Пришелец
0
попробую, спасибо

Чатланин
0
Самый простои способ для bb кодов это str_replace() и preg_replace(). А то он говорит учится, а ты сразу скрипты тут пишешь врядли поймет. И еще. Прежде чем использовать preg_replace() выучи "Регулярные Выражения". А то ничего не поймешь.
Изменил: Абдула (11.03.2012 / 23:43)
А

Оранжевые штаны
0
14: Странный, ага, жаль пишется так - preg_replace()

Чатланин
0
Простой пример.
$text = str_replace('[b]', '<b>', '$text');
$text = str_replace('[/b]', '</b>', '$text');
Изменил: Абдула (11.03.2012 / 23:45)

2000 лет д.н.э.
0
Странный (11 Марта 2012 / 23:40)
Простой пример.
[php]
$text = str_replace('[b]', '<b>', '$text');
$text = str_replace('[/ b]', '</b>', '$text');
[/php]
плохой пример. такое надо делать регулярками и только ими
иначе тебе так страницы изурoдуют без проверки на закрытие тега
Изменил: ramzes (11.03.2012 / 23:47)

Чатланин
0
А что это она bb код обрабатывает.

Добавлено через 03:46 сек.
ramzes (11 Марта 2012 / 23:46)
плохой пример. такое надо делать регулярками и только ими
иначе тебе так страницы изурoдуют без проверки на закрытие тега

да ты прав могут из***овать. Но это просто пример, чтоб знал в чем суть заключена.
Например я когда начинал учил думал это что то сложное, совсем не думал что так делается. Когда увидел эти функции и узнал, что суть в топ чтобы заменить одни символы на другие, то понял все.
А
Автор
Пришелец
0
возник вопрос, функция ббкодов идет так
{
$bbcode = array(
'~\[url=(.*?)?\](.*?)\[\/url\]~si' => '<a href="$1" target="_blank">$2</a>',
'~\[img=(.*?)\](.*?)\[\/img\]~si' => '<img src="$1" alt="$2" />',
'/\[b\](.+)\[\/b\]/isU' => '<b>$1</b>',
'/\[u\](.+)\[\/u\]/isU' => '<span style="text-decoration:underline;">$1</span>',
'/\[s\](.+)\[\/s\]/isU' => '<s>$1</s>',

мне как лучше добавить ?

Добавлено через 01:50 сек.
просто боюсь новую функцию обьявлять...

Добавлено через 09:07 сек.
это только часть кода

Чатланин
0
Что ты боишься. Сделай функцию и обработай им вывод сообщения

И еще. Зайди на http://php.su. Сделай поиск Регулярные выражения и preg_replace. Выучи обе штуки наизусть. Тогда поймешь как сделать bb коды. Лучше что то свое и понятное, чем что то чужое и не понятное.
Изменил: Абдула (12.03.2012 / 09:58)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск