我想post_content所有img标签添加高度大小。
我不能preg_match_all
。因为img标签数组是NO。
preg_filter
- 执行正则表达式搜索并替换。
getimagesize(IMGURL)[1]
是身高尺寸像素。
$2
是img标记src网址。蝙蝠字符串不在$2
preg_filter('/<img(.+?)src="(.+?)"(.+?)>/i',
"<img$1src=\"$2\"$3 height=\"".getimagesize("{$2}")[1]."\">",
$row['post_content']);
// <img src="/abc/a.jpg" height="">
preg_filter('/<img(.+?)src="(.+?)"(.+?)>/i',
"<img$1src=\"$2\"$3 height=\"".getimagesize(."{$2}".)[1]."\">",
$row['post_content']);
// PHP Parse error: syntax error, unexpected '.' in /var/www/a/a.php line 22
$row['post_content']
是
"<p>Hello my name is.</p>
<img src="sadsafdsd.jpg" alt><br>
<img src="sadsafdsfd.jpg" alt><br>
<img src="sadsgtjhsad.jpg" alt><br>
<img src="hgtsadsad.jpg" alt><br>
<img src="sadshtread.jpg" width="400" alt><br>
<img src="sadretsad.jpg" alt><br>"
答案 0 :(得分:1)
您可以使用preg_replace_callback()代替。
function setheight($matches){
$img_prop = getimagesize($matches[2]);
return '<img' . $matches[1] . 'src="'.$matches[2].'" '. $matches[3] . ' height="'.$img_prop[2].'">';
}
preg_replace_callback(
"/<img(.+?)src=\"(.+?)\"(.+?)>/i",
"setheight",
$row['post_content']);