2

我需要div在 wordpress 上的每个帖子的 img 标签之后添加一个字符串(在这种情况下是 a )。我知道在哪里做,但我不知道怎么做。我试过preg_replace但它不起作用:

$content = preg_replace('/<img[^>]+\>/i', '/<img[^>]+\>/i <div...>', $content);

结果我得到/<img[^>]+\>/i <div...>而不是 img 后面跟着 . 我能怎么做?

4

3 回答 3

2

替换部分应该是: '$0 <div...>',这基本上是:用我的模式找到你发现的内容并附加我的 div。

所以你的代码应该像:

$content = preg_replace('/<img[^>]+\>/i', '$0 <div...>', $content);
于 2013-04-08T12:37:13.163 回答
1

第二个参数preg_replace()应该是替换字符串,而不是另一个正则表达式。您可以使用$0(整个匹配)或$1 ~ $9您拥有的每个内存捕获。在您的情况下,您没有任何内存捕获(括号之间的内容),因此:

$content = preg_replace('/<img[^>]+>/i', '$0 <div...>', $content);

顺便说一句,您不必>在表达式中转义。

于 2013-04-08T12:43:28.533 回答
0
$content = "<img /> <br/> <img />" ;
$content = preg_replace('/(<img[^>]+\>)/i', '$1 <div></div>', $content);
echo htmlentities($content) ;
于 2013-04-08T12:42:54.530 回答