У меня есть небольшой скрипт, который заменяет код BB кодом HTML. Все работает отлично, но URL-адреса.
$bbextended = array(
"/\[URL=(.*?)\](.*?)\[\/URL\]/i" => "<a href=\"$1\" title=\"$1\">$2</a>"
);
foreach($bbextended as $match=>$replacement){
$bbtext = preg_replace($match, $replacement, $bbtext);
}
вход
[URL="http://somewebsite.come/something"]Some Website Title[/URL]
Вывод
<a href=""http://somewebsite.come/something"" title=""http://somewebsite.come/something"">Some Website Title</a>
Существуют двойные кавычки, которые, очевидно, не так хороши.
Я пытался
$bbextended = array(
"/\[URL=\"(.*?)\"\](.*?)\[\/URL\]/i" => "<a href=\"$1\" title=\"$1\">$2</a>"
);
в коде, но это не сработало. Я также попытался оставить знак выхода и процитировать около $1
в коде HTML, но он не сработал.
Есть идеи?
Для этого вы должны использовать настоящий парсер, например jBB http://jbbcode.com/
Когда я
Установите строку поиска = '/\[URL="(.*?)"\](.*?)\[\/URL\]/i'
а также
Установите замену string = '<a href="$1" title="$1">$2</a>'
Я получаю это, используя простой preg_replace
<a href="http://somewebsite.come/something" title="http://somewebsite.come/something">Some Website Title</a>