You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中仅缩小宽度大于1080px的图片,保留小图原尺寸

修复后的完整代码

<?php
$files = glob("upload/*.*");
$maxWidth = 1080;

foreach ($files as $image) {
    // 获取图片尺寸,跳过非图片文件
    $imageInfo = getimagesize($image);
    if (!$imageInfo) {
        continue;
    }
    $imageWidth = $imageInfo[0];
    
    echo basename($image) . "<br />";
    
    // 根据宽度决定是否设置width属性
    if ($imageWidth > $maxWidth) {
        echo '<img src="' . $image . '" width="' . $maxWidth . '" alt="Random image" /><br /><br />';
    } else {
        echo '<img src="' . $image . '" alt="Random image" /><br /><br />';
    }
}
?>

关键修改说明

  • 获取图片真实宽度:用getimagesize()函数提取图片的实际宽度,函数返回数组的第一个元素即为宽度值,这是你之前代码缺失的核心步骤。
  • 过滤无效文件:添加判断跳过无法读取尺寸的非图片文件,避免脚本报错。
  • 条件渲染标签:仅当图片宽度超过1080px时,才添加width="1080"属性;宽度≤1080px的图片不设置宽度属性,保持原尺寸显示。
  • 优化循环写法:改用foreach遍历文件列表,比原for循环更简洁高效。

更轻量的替代方案(CSS实现)

如果不需要PHP后端处理,直接用CSS就能实现类似max-width的效果,浏览器会自动处理缩放,无需获取图片尺寸:

img {
    max-width: 1080px;
    height: auto;
}

内容的提问来源于stack exchange,提问作者Dhirgham Murran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:32:41