1

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

$contentWidth = 'width="600"';

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

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

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

4

1 回答 1

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),因为您的贪婪匹配器 (.*?) 允许字符和数字。

于 2013-04-25T17:41:24.880 回答