0

我正在尝试替换 href 并且我有以下代码:<a href="http://www.mysite.com" target="_blank">My site</a>

接着就,随即 :

$textarea_content = '<a href="http://www.mysite.com" target="_blank">My site</a>';
$patterns = array(
    "/<a href=/",
    "/target*\=*\'*\_blank*\'*\>/",
    "/<*\/a>/"
);
$replacements = array(
    "[url=",
    "]",
    "[/url]"
);
$textarea_content = preg_replace($patterns,$replacements, $textarea_content);

我需要将链接标签转换为这种结构:

[url='http://www.mysite.com']My site[/url]

问题是输出类似于:<a href="" http:="" www.mysite.com''="" target="_blank">My site</a>

我做错了什么?感谢帮助!

4

1 回答 1

1
echo preg_replace('/(?:\<a\s+.*href=\"([^\"]*)"[^\>]*\>([^\<]*)\<\/a\>)/', '[url=\'\\1\']\\2[/url]', $text);

假设:

$text = 'Bla bla bla <a href="http://www.mysite.com" target="_blank">My site</a> bla bla bla';

结果:

Bla bla bla [url='http://www.mysite.com']My site[/url] bla bla bla

编辑根据以下OP的评论:

如果想取回您的 HTML,您只需执行以下操作:

echo preg_replace('/(?:\[url=\'([^\']*)\'\]([^\[]*)\[\/url\])/', '<a href="\\1" target="_blank">\\2</a>', $parsed);

假设:

$parsed = 'Bla bla bla [url=\'http://www.mysite.com\']My site[/url] bla bla bla';

结果:

Bla bla bla <a href="http://www.mysite.com" target="_blank">My site</a> bla bla bla
于 2012-10-26T07:21:13.997 回答