【问题标题】:Any way i can check if a url points to a valid image (using JS/PHP/ZendFramework)?有什么办法可以检查一个 url 是否指向一个有效的图像(使用 JS/PHP/ZendFramework)?
【发布时间】:2026-02-09 18:25:01
【问题描述】:

我正在开发一个测试/学习应用程序。我想知道如何测试来自另一个站点/域的图像...我将验证逻辑分解为以下内容

  • 存在
  • 是一张图片
  • 是有效类型
  • 具有特定尺寸
  • 低于最大尺寸 - 假设我希望图像快速加载。托管资源不是我的。

【问题讨论】:

    标签: php javascript zend-framework validation


    【解决方案1】:

    getimagesize() 可以做所有事情,除了你的最后一点。为此,您可以使用filesize()。对于filesize(),您必须实际下载它,但看到getimagesize() 也需要,您可以将其保存到临时文件中。您可以使用tempnam() 获取一个不会与他人冲突的临时文件。

    【讨论】:

      【解决方案2】:
      1. 检查 url 是否存在:

        $handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($handle); $status = curl_getinfo($handle, CURLINFO_HTTP_CODE); if($status == 404) {//return true or whatever}

      2. 是图像,属于有效类型: 确定文件扩展名是否有效,例如使用

        preg_match('/(jp[e]?g|png|gif|etc...)$/i', $url);

      3. 具有特定尺寸: 使用GD创建资源,然后通过getImageSize($resource)检查大小

      4. 低于最大尺寸: 除了第 1 步 - $size = curl_getinfo($handle, CURLINFO_SIZE_DOWNLOAD);

      请记住,您必须启用 cURLGD

      【讨论】:

      • 所以我看到我仍然需要下载文件...嗯
      最近更新 更多