在所有起始锚标记</span>之后添加<span>

时间:2014-09-05 15:53:27

标签: php regex preg-replace str-replace

我试图在所有打开的锚标签之后添加一个跨度,无论锚内部是什么。我在CMS中工作,因此$content将保留我的所有链接,并且是一个很长的HTML字符串。

我首先尝试str_replace(),但它显然不使用通配符。

$content = str_replace( '<a href="%">', '<a href="%"><span class="fa"></span>', $content );

然后我尝试了preg_replace(),但我不仅不知道足够的正则表达式,而且我不一定要替换我找到的东西,而是找到我想找的东西然后附加{{1 }}。找到我的开始锚点然后追加<span>或其后的任何其他数据有什么好的功能?

1 个答案:

答案 0 :(得分:2)

使用preg_replace

$content = preg_replace('/<a (.*?)>(.*?)<\/a>/', '<a $1 ><span class="fa"></span>$2</a>', $content);

(.*?)获取任何内容,然后$1对应于将第一个(.*?)替换回来。因此第二次出现在$2所在的位置。