使用preg_replace

时间:2011-09-19 10:19:38

标签: php

更改

的最简单方法是什么?
<a href="link">title</a>

[url="link"]title[/url]

由于

3 个答案:

答案 0 :(得分:2)

您可以尝试使用

$result = preg_replace('/<a href="(.*)">(.*)<\/a>/', '[url="\1"]\2[/url]', $input);

答案 1 :(得分:2)

尝试使用此表达式:#<a href="(.*?)">(.*?)</a>#s

示例:

$str = '<a href="link">title</a>';
$str = preg_replace( '#<a href="(.*?)">(.*?)</a>#s', '[url="\\1"]\\2[/url]', $str);

演示:Codepad

答案 2 :(得分:2)

提供改进版本:
1)将两个''视为参数附件
2)将使用多个标签
3)允许标签中的其他参数和各种间距

<?php
$r = "<a href=\"test.html\" arg2=\"foo\" bar3=\"_something_else\">test</a>\n
<a href= \"test2.html\" >test2</a>\n
<a href = 'test3.html'>test3</a>\n
";
$r = preg_replace("/<a.*?href[^=]*=[^'\"]*['\"]([^'\"]+)['\"].*?>([^<]+)<\/a>/", "[url=\\1]\\2[/url]", $r);
echo $r;

输出:

[url=test.html]test[/url]

[url=test2.html]test2[/url]

[url=test3.html]test3[/url]