04.01.2006, 17:14 | #6578 |
Premium Member
Регистрация: 26.10.2005
Сообщения: 293
|
BBcode как сделать?
Решил написать функцию замены bbcod'а на html коды, скажу одно - после 70 строчки кода руки отсохли и устал думать как и что сделать, сделал только проверку на b,i,u,c,l(left),r(right),url,img. Решил, что с меня хватит Так что прошу вашей помощи - подскажите, где можно прочитать про пресловутые bbcod'ы и их замену, ну, кодеры, вы меня поняли? Статьи желательно на php
__________________
|
04.01.2006, 17:37 | #6580 |
Старожила
Регистрация: 07.11.2005
Адрес: Москва
Сообщения: 315
|
Дай угадаю.. ) Парсер новостей для кланового сайта в игре какой-то? )
eregi_replace() юзай.. там все легко.. строчек 10-20 хватит точно... http://php.net/eregi_replace
__________________
|
04.01.2006, 17:40 | #6581 |
Модератор
Регистрация: 07.12.2005
Сообщения: 260
|
Скажу сразу что я этого не делал, но линков подкину :-)
http://www.phpit.net/article/create-bbcode-php/ http://pear.php.net/package/HTML_BBCodeParser/ Но и конечно у тебя всегда есть под рукой исходник этого форума, где все это давно сделано ;-) |
04.01.2006, 17:42 | #6582 | |
Модератор
Регистрация: 07.12.2005
Сообщения: 260
|
Цитата:
юзать надо preg_replace |
|
04.01.2006, 18:02 | #6585 |
Старожила
Регистрация: 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("/&/","&",$newsText); // Оставим теги, которые воспринимает флеш $patterns=array('/\[b\]/','/\[\/b\]/','/\[i\]/','/\[\/i\]/','/\[u\]/','/\[\/u\]/','/\[list\]/','/\[\/list\]/','/\[\*\]/'); $replacements=array('<b>','</b>','<i>','</i>','<u>','</u>','<ul>','</ul>','<li>'); $newsText=preg_replace($patterns,$replacements,$newsText); $newsText = str_replace("[url]http://","[url]",$newsText); $newsText=preg_replace("/\[url\](.+?);(.+?)\[\/url\]/","<a href=\"http://$1\" target=\"_blank\">$2</a>",$newsText); $newsText=preg_replace("/\[ftp\](.+?);(.+?)\[\/ftp\]/","<a href=\"ftp://$1\" target=\"_blank\">$2</a>",$newsText); $newsText=preg_replace("/\[email\](.+?);(.+?)\[\/email\]/","<a href=\"mailto://$1\" target=\"_blank\">$2</a>",$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/","<br>",$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);
__________________
|
04.01.2006, 18:29 | #6586 | |
Premium Member
Регистрация: 26.10.2005
Сообщения: 293
|
Цитата:
Спасибо, что подсказали функции, которыми пользоваться, а то я написал свои уже, работающие между прочим, но на 15 строчек кода - минус. azalio Исходник смотрел, разбираться не стал - лень
__________________
|
|
04.01.2006, 18:33 | #6589 |
Premium Member
Регистрация: 26.10.2005
Сообщения: 293
|
NEOn За исходник спасибо, но я лучше напишу свой, да и в твоем разбираться не буду даже - лень. Но спасибо большое тебе за исходник
__________________
|
Здесь присутствуют: 1 (пользователей - 0 , гостей - 1) | |
|
|