Не совсем, URL с первой строки ведет себя вот так:
Код | http://www.vingrad.ru[/url]"[url=http://www.vingrad.ru]http://www.vingrad.ru
|
тут можно посмотреть и даже попробовать: http://pk.traktora.spb.ru/index.php?page=comment&idp=65 Добавлено @ 18:10 А при наведении на ссылку, посылает вот сюда и так:
Код | http://pk.traktora.spb.ru/<a
|
Добавлено @ 18:15 http://vasya.ru Такое впечатление, что ему не нравятся именно ссылки введенные от руки, вроде ссылки с описанием хоть с первой, хоть с последней строки пишутся нормально. Да именно так! Ссылки с описанием ему по зубам, а вот просто ссылки не нравятся, так же как и просто введенный от руки e-mail с первой строки. Может с функцией callback чего не так? Добавлено @ 18:20 Выкладываю полностью свой класс, может быть так понятнее будет: Вот класс:
Код | <? class HtmlCodes { function AssemblyUrls($text) { $text = preg_replace("%(?:^|[A-Z0-9])((?:http|ftp)://[-\w]+(?:\.[-\w]+)+\b[-\w:@&?=+,!/;\~*$\.\'\%]*)(?<![\.,?!)])%is", "[url]\\1[/url]", $text); $text = preg_replace("%\[url\](.+?)\\[\/url\]%is", "<a target=\"_blank\" href=\"\\1\">\\1</a>", $text); return $text; } function AssemblyEmail($text) { $text = preg_replace("#(^[^\[]|\s)((\w|\d){1}(\w|\d|\-|_|\.|\+)+?(\w|\d){1}@((\w|\d){1,}(\-|\.){0,1}(\w|\d){1,})+?\.(\w){2,4})#is", "[email]\\2[/email]", $text);
$text = preg_replace("#\[email\](.*)\[\/email\]#isU", "<a target=\"_blank\" href=mailto:\\1>\\1</a>", $text); $text = preg_replace("#\[email=(.*)\](.*)\[\/email\]#isU", "<a target=\"_blank\" href=mailto:\\1>\\2</a>", $text);
return $text; }
function ApplyFormatting($text, $nl2br = true) {
return str_replace( array('[i]', '[/i]', '[b]', '[/b]', '[u]', '[/u]', '[quote]','[/quote]','[color=red]','[/color]','[color=blue]','[/color]','[size=1]','[/size]','[size=2]','[/size]','[size=6]','[/size]','[size=8]','[/size]','[size=10]','[/size]','[font=arial]','[/font]','[font=courier]','[/font]','[font=impact]','[/font]','[font=tahoma]','[/font]','[font=times]','[/font]','[font=verdana]','[/font]','[justify]', '[/justify]', '[center]', '[/center]','[right]', '[/right]', '[left]', '[left]',), array('<i>', '</i>', '<b>', '</b>', '<u>', '</u>','<div class=quote>','</div>','<font color=red>','</font>','<font color=blue>','</font>','<font size=1>','</font>','<font size=2>','</font>','<font size=6>','</font>','<font size=8>','</font>','<font size=10>','</font>','<font face=arial>','</font>','<font face=courier>','</font>','<font face=impact>','</font>','<font face=tahoma>','</font>','<font face=times>','</font>','<font face=verdana>','</font>','<p align="justify" class="content">', '</p>', '<p align="center" class="content">', '</p>', '<p align="right" class="content">', '</p>', '<p align="left" class="content">', '</p>',), (($nl2br == true) ? nl2br($text) : $text) );
}
function Assemblyimg($text) { $text = preg_replace("%[^=\]\[]((?:http|ftp)://[-\w]+(?:\.[-\w]+)+\b[-\w:@&?=+,!/;\~*$\.\'\%]*)(?<![\.,?!)])%is", "[url=\\1\]\\1[/url]", $text); $text = preg_replace("%\[pict\](.*)\\[\/pict\]%is", "<a target=\"_blank\" href=\"\\1\"><img src=\\1 border=0></a>", $text); return $text; }
} ?>
|
Вот кусок вывода из базы:
Код | $mas_com[4] = HtmlCodes::AssemblyUrls($mas_com[4]); $mas_com[4] = HtmlCodes::Assemblyimg($mas_com[4]); $mas_com[4] = HtmlCodes::Assemblyemail($mas_com[4]); $mas_com[4] = HtmlCodes::ApplyFormatting($mas_com[4]); $mas_com[4]=preg_replace("/\[url=([^\]]*)\](.*)\[\/url\]/", "<a href=\"\\1\">\\2</a>", $mas_com[4]); $mas_com[4]=preg_replace("/\[pict=([^\]]*)\](.*)\[\/pict\]/", "<a href=\"\\1\">\\2</a>", $mas_com[4]);
|
|