0

是否可以调整此功能,使其也适用于本地文件路径?

$meta 包含以下内容: Array ( [wrapper_type] => plainfile [stream_type] => STDIO [mode] => rb [unread_bytes] => 0 [seekable] => 1 [uri] => C:\imgs\232434. jpg [timed_out] => [blocked] => 1 [eof] => )

$meta["wrapper_data"] 不存在。

function isImage($url)
  {
     $params = array('http' => array(
                  'method' => 'HEAD'
               ));
     $ctx = stream_context_create($params);
     $fp = @fopen($url, 'rb', false, $ctx);
     if (!$fp) 
        return false;  // Problem with url

    $meta = stream_get_meta_data($fp);
    if ($meta === false)
    {
        fclose($fp);
        return false;  // Problem reading data from url
    }

    $wrapper_data = $meta["wrapper_data"];
    if(is_array($wrapper_data)){
      foreach(array_keys($wrapper_data) as $hh){
          if (substr($wrapper_data[$hh], 0, 19) == "Content-Type: image") // strlen("Content-Type: image") == 19 
          {
            fclose($fp);
            return true;
          }
      }
    }

    fclose($fp);
    return false;
  }
4

1 回答 1

3

最好使用getimagesize来检测本地/URL 文件是否为图像。

失败时,返回 FALSE。这可能是您正在寻找的。

于 2012-09-13T15:23:02.340 回答