Fuelen » 2009.07.28 11:39

Как сделать чтобы
выделялись ссылки в
сообщении и
одновременно
работал тег
[ url = http... ]url'ka[ / url ]?
Обязательное
условие: если ссылка в
html теге <a
href="тут
ссылка">название</a>,
то её не выделять :)
А то при использовании Geshi  выходит вот такое. (Второй пост)

Gemorroj » 2009.07.28 11:53

А как получаются эти свои <a href=" ? от них нельзя избавится и переложить заботу о ссылках на Geshi ?

Fuelen » 2009.07.28 12:04

Получаются так...

function url_replace($m) {
if(!isset($m[3])) {
return '<a href="'.$m[1].'">'.$m[2].'</a>';
}else{
return '<a href="'.$m[3].'">'.$m[3].'</a>';
}}
$msg=syntax_filter(htmlspecialchars(trim($msg)));
$msg=preg_replace_callback('~\\[url=(http://.+?)\\](.+?)\\[/url\\]|(http://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', 'url_replace', $msg);
syntax_filter() функция обработки кода через геши.
Вот геши сделал ссылки на функции, а потом через регулярку ещё эти ссылки выделяются

Gemorroj » 2009.07.28 12:20

эмммм... попробуй воспользоваться XBB. Документация

Fuelen » 2009.07.28 12:54

Спасибо :)
Тут ещё подумал, мож в классе геши просто изменить, чтобы генерировалася бб код, а не ссылка :)