2015-11-19 1 views
2

Я пытаюсь преобразовать адреса в ссылки в строкеПреобразование URL-адресов в ссылки в строку с помощью preg_replace()

У меня есть следующая строка:

$x="Welcome to my [homepage](http://example.com) ,Please check our [About us](http://example.com/about-us) page for more info about this site. 

Я хочу, чтобы преобразовать все внутри [и ], чтобы связать название и все внутри (и) со значением атрибута href:

Добро пожаловать в мой homepage, пожалуйста, ознакомьтесь с нашей страницей About us для получения дополнительной информации об этом сайте.

Я попытался preg_replace() функцию, но она не работает

$x="Welcome to my [homepage](http://example.com) ,Please check our [About us](http://example.com/about-us) page for more info about this site"; 

echo preg_replace("/\[([^\]+)\]\(([^\)]+)\)/i","<a href='$2'>$1</a>",$x); 

Я получаю ту же строку в выходной:

Welcome to my [homepage](http://example.com) ,Please check our [About us](http://example.com/about-us) page for more info about this site. 

что-то случилось с моим кодом?

Пожалуйста, помогите!

+0

Вашей входная строка выглядит уценка. Рассматривали ли вы вместо этого использование анализатора разметки? (Думаю, это было бы излишним, если бы это было единственное, что вы использовали бы для этого, но все же считали, что это стоит предложить). –

ответ

1

Вы можете использовать следующие регулярные выражения вроде как

echo preg_replace("/\[(.*?)\]\((.*?)\)/","<a href='$2'>$1</a>",$x); 

Regex

-1
$x = str_replace("[homepage]", "<a href='www.example.com/homepage'>homepage</a>", $x); 
Смежные вопросы