如何仅删除图像宽度和高度,而不是iframe?代码包括在内

时间:2013-03-29 17:36:40

标签: php regex wordpress

我目前在wordpress函数文件中使用的代码是:

function remove_width_attribute( $html ) {
   $html = preg_replace( '/(width|height)=("|\')\d*(|px)("|\')\s/', "", $html );
   return $html;
}
add_filter( 'the_content', 'remove_width_attribute', 10 );

这里的问题是它也会定位iframe,那么我如何重写正则表达式才能说出图片呢?

2 个答案:

答案 0 :(得分:1)

我会使用non capturing groups在其他语句之前搜索img标记,例如

(?:img.*)(width|height ?= ?['"].*['"])

您可以在此处看到:http://regex101.com/r/mI1bD5

请注意,这在很多简单的情况下都失败了(iframeimg标签位于同一行上,但它应该会推动你朝着正确的方向发展。

答案 1 :(得分:0)

感谢Trevor提供了有用的建议。 这是我修改过的表达式,它做得更好一些,但仍然不太完美。 (?:<img.*){1}((width|height)=['"]\d*['"]) (?:.*\/>|>){1}