Вернуться   Foxter.ru > Мой компьютер > Программирование > Web-программирование

Ответ
 
Опции темы Опции просмотра
Старый 04.01.2006, 17:14   #6578  
Premium Member
 
Аватар для Vadya corp.
 
Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365
Регистрация: 26.10.2005
Сообщения: 293
По умолчанию BBcode как сделать?

Решил написать функцию замены bbcod'а на html коды, скажу одно - после 70 строчки кода руки отсохли и устал думать как и что сделать, сделал только проверку на b,i,u,c,l(left),r(right),url,img. Решил, что с меня хватит Так что прошу вашей помощи - подскажите, где можно прочитать про пресловутые bbcod'ы и их замену, ну, кодеры, вы меня поняли? Статьи желательно на php
__________________
Готовлю еду за PHP и MySQL
Vadya corp. вне форума   Ответить с цитированием
Старый 04.01.2006, 17:37   #6580  
Старожила
 
Аватар для NEOn
 
Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709
Регистрация: 07.11.2005
Адрес: Москва
Сообщения: 315
По умолчанию

Дай угадаю.. ) Парсер новостей для кланового сайта в игре какой-то? )
eregi_replace() юзай.. там все легко.. строчек 10-20 хватит точно...
http://php.net/eregi_replace
__________________
NEOn вне форума   Ответить с цитированием
Старый 04.01.2006, 17:40   #6581  
Модератор
 
Аватар для azalio
 
Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476
Регистрация: 07.12.2005
Сообщения: 260
По умолчанию

Скажу сразу что я этого не делал, но линков подкину :-)

http://www.phpit.net/article/create-bbcode-php/

http://pear.php.net/package/HTML_BBCodeParser/

Но и конечно у тебя всегда есть под рукой исходник этого форума, где все это давно сделано ;-)
azalio вне форума   Ответить с цитированием
Старый 04.01.2006, 17:42   #6582  
Модератор
 
Аватар для azalio
 
Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476Репутация: 6476
Регистрация: 07.12.2005
Сообщения: 260
По умолчанию

Цитата:
Сообщение от NEOn
Дай угадаю.. ) Парсер новостей для кланового сайта в игре какой-то? )
eregi_replace() юзай.. там все легко.. строчек 10-20 хватит точно...
http://php.net/eregi_replace
eregi это очень медленно, это уже тестировали :-)
юзать надо preg_replace
azalio вне форума   Ответить с цитированием
Старый 04.01.2006, 18:00   #6584  
Старожила
 
Аватар для NEOn
 
Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709
Регистрация: 07.11.2005
Адрес: Москва
Сообщения: 315
По умолчанию

С preg_replace есть минус... При составных тегах фигово работает.. Я недавно такой парсер писал...
__________________
NEOn вне форума   Ответить с цитированием
Старый 04.01.2006, 18:02   #6585  
Старожила
 
Аватар для NEOn
 
Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709Репутация: 396709
Регистрация: 07.11.2005
Адрес: Москва
Сообщения: 315
По умолчанию

Код:
$fh=fopen("news.xml","w");
$s="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$query=mysql_query("SELECT id_news,nick,addDate,title,newsText FROM news WHERE tested=1 AND (addDate>CURDATE()-10) ORDER BY clip DESC,addDate DESC LIMIT 5");
while(list($id_news,$nick,$addDate,$title,$newsText)=mysql_fetch_array($query)) {
$nick=CP1251toUTF8($nick);
$addDate=date("d.m.y H:i",$addDate);
$title=CP1251toUTF8($title);
$url="http://***/index.php?go=news_comment&id_news=$id_news";
$newsText=preg_replace("/&amp;/","&",$newsText);
// Оставим теги, которые воспринимает флеш
$patterns=array('/\[b\]/','/\[\/b\]/','/\[i\]/','/\[\/i\]/','/\[u\]/','/\[\/u\]/','/\[list\]/','/\[\/list\]/','/\[\*\]/');
$replacements=array('&lt;b&gt;','&lt;/b&gt;','&lt;i&gt;','&lt;/i&gt;','&lt;u&gt;','&lt;/u&gt;','&lt;ul&gt;','&lt;/ul&gt;','&lt;li&gt;');
$newsText=preg_replace($patterns,$replacements,$newsText);
$newsText = str_replace("[url]http://","[url]",$newsText);
$newsText=preg_replace("/\[url\](.+?);(.+?)\[\/url\]/","&lt;a href=\"http://$1\" target=\"_blank\"&gt;$2&lt;/a&gt;",$newsText);
$newsText=preg_replace("/\[ftp\](.+?);(.+?)\[\/ftp\]/","&lt;a href=\"ftp://$1\" target=\"_blank\"&gt;$2&lt;/a&gt;",$newsText);
$newsText=preg_replace("/\[email\](.+?);(.+?)\[\/email\]/","&lt;a href=\"mailto://$1\" target=\"_blank\"&gt;$2&lt;/a&gt;",$newsText);
// Все остальные теги вырубим
$newsText=preg_replace("/\[img\].*?\[\/img\]/","",$newsText);
$newsText=preg_replace("/\[clan\].*?\[\/clan\]/","",$newsText);
$newsText=preg_replace("/\[prof\].*?\[\/prof\]/","",$newsText);
$newsText=preg_replace("/\[flash=\d+?,\d+?\].*?\[\/flash\]/","",$newsText);
$newsText=preg_replace("/\[.+?\]/","",$newsText);

// Перевод каретки заменим на <br>
$newsText=preg_replace("/\n/","&lt;br&gt;",$newsText);
$newsText=preg_replace("/\r/","",$newsText);

// Кодируем в УТФ-8
$newsText=CP1251toUTF8($newsText);
$s.="<news autor=\"$nick\" date=\"$addDate\" title=\"$title\" url=\"$url\">$newsText</news>\n";

}
// Запишем файл
fwrite($fh,$s);
fclose($fh);
__________________
NEOn вне форума   Ответить с цитированием
Старый 04.01.2006, 18:29   #6586  
Premium Member
 
Аватар для Vadya corp.
 
Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365
Регистрация: 26.10.2005
Сообщения: 293
По умолчанию

Цитата:
Сообщение от NEOn
Парсер новостей для кланового сайта в игре какой-то? )
Не угадал Эту работу у меня отобрал другой, и сделал за 10 дней burningsea.com

Спасибо, что подсказали функции, которыми пользоваться, а то я написал свои уже, работающие между прочим, но на 15 строчек кода - минус.

azalio Исходник смотрел, разбираться не стал - лень
__________________
Готовлю еду за PHP и MySQL
Vadya corp. вне форума   Ответить с цитированием
Старый 04.01.2006, 18:33   #6589  
Premium Member
 
Аватар для Vadya corp.
 
Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365Репутация: 123365
Регистрация: 26.10.2005
Сообщения: 293
По умолчанию

NEOn За исходник спасибо, но я лучше напишу свой, да и в твоем разбираться не буду даже - лень. Но спасибо большое тебе за исходник
__________________
Готовлю еду за PHP и MySQL
Vadya corp. вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
[Foxter Skin] developed by: Foxter.ru