用PHP替换宽度值(带条件)

时间:2013-04-25 17:33:20

标签: replace width preg-replace

我知道之前有关于用PHP替换宽度值的问题,而且这不是我的问题所在。

$contentWidth = 'width="600"';

$screenContent = get_the_content();
$screenContent = preg_replace("/width=\"(.*?)\"/is", $contentWidth, $screenContent);
echo $screenContent; 

这就是我到目前为止所做的工作。但我想添加一个条件,只在宽度超过600时进行更改;只是为了确保我不会扭曲图像质量。

有没有办法将宽度分配给变量?

1 个答案:

答案 0 :(得分:1)

您可以使用preg_match获取您感兴趣的$ screenContent部分:

$screenContent = get_the_content();
if(preg_match("/width=\"(.*?)\"/is", $contentWidth, $match)) {
    // width is stored in $match[1] (the matching portion is in $match[0])
    if(is_numeric($match[1]) && $match[1] > 600)
        $screenContent = preg_replace("/width=\"(.*?)\"/is", $contentWidth, $screenContent);
}

echo $screenContent; 

确保检查有效宽度(上面的is_numeric),因为贪婪的匹配器(。*?)允许使用字符和数字。