preg_replace: BB-код в HTML-URL

У меня есть небольшой скрипт, который заменяет 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, но это не сработало.

Есть идеи?

0

Решение

Для этого вы должны использовать настоящий парсер, такой как jBB http://jbbcode.com/

1

Другие решения

Когда я

Установить строку поиска = '/\[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>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector