我可以用任何方式检查url是否指向有效图像(使用JS / PHP / ZendFramework)?

时间:2010-07-29 11:25:04

标签: php javascript zend-framework validation

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

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

2 个答案:

答案 0 :(得分:4)

除了最后一点,

getimagesize()可以完成所有操作。为此,您可以使用filesize()。对于filesize(),您必须实际下载它,但看到getimagesize()也需要这样,您只需将其保存到临时文件即可。您可以使用tempnam()来获取与其他文件不冲突的临时文件。

答案 1 :(得分:0)

  1. 检查网址是否存在:

    $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. 检查大小
  5. 低于最大尺寸: 除了第1步 - $size = curl_getinfo($handle, CURLINFO_SIZE_DOWNLOAD);

  6. 之外

    请注意,您必须启用cURLGD