2014-11-18 2 views
0

У меня есть небольшой скрипт, который заменяет код BB кодом HTML. Все работает отлично, но URL-адреса.preg_replace: BB код для HTML-кода

$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

Когда я

Установите Find строку = '/\[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> 
Смежные вопросы