У меня есть небольшой скрипт, который заменяет 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'
а также
Установить строку замены = '<a href="$1" title="$1">$2</a>'
Я получаю это с помощью простого preg_replace
<a href="http://somewebsite.come/something" title="http://somewebsite.come/something">Some Website Title</a>