我试图在所有打开的锚标签之后添加一个跨度,无论锚内部是什么。我在CMS中工作,因此$content
将保留我的所有链接,并且是一个很长的HTML字符串。
我首先尝试str_replace()
,但它显然不使用通配符。
$content = str_replace( '<a href="%">', '<a href="%"><span class="fa"></span>', $content );
然后我尝试了preg_replace()
,但我不仅不知道足够的正则表达式,而且我不一定要替换我找到的东西,而是找到我想找的东西然后附加{{1 }}。找到我的开始锚点然后追加<span>
或其后的任何其他数据有什么好的功能?
答案 0 :(得分:2)
使用preg_replace
$content = preg_replace('/<a (.*?)>(.*?)<\/a>/', '<a $1 ><span class="fa"></span>$2</a>', $content);
(.*?)
获取任何内容,然后$1
对应于将第一个(.*?)
替换回来。因此第二次出现在$2
所在的位置。