加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

有没有办法检查远程图像是否存在? PHP

发布时间:2020-12-13 21:45:09 所属栏目:PHP教程 来源:网络整理
导读:我的网站在LAMP中运行,我的图像CDN在nginx中. 我想做的是: 检查请求的映像是否在CDN服务器中有副本,如果是,则将副本借出到cdn服务器,否则,为用户加载本地副本. 是否有一种以编程方式检查远程CDN图像是否存在的方法? (也许确定标题?因为我注意到如果请求图
我的网站在LAMP中运行,我的图像CDN在nginx中.

我想做的是:
检查请求的映像是否在CDN服务器中有副本,如果是,则将副本借出到cdn服务器,否则,为用户加载本地副本.

是否有一种以编程方式检查远程CDN图像是否存在的方法?

(也许确定标题?因为我注意到如果请求图像不存在,则返回404)

解决方法

我使用此方法ping远程文件:

/**
   * Use HTTP GET to ping an url
   *
   * /! Warning,the return value is always true,you must use === to test the response type too.
   * 
   * @param string $url
   * @return boolean true or the error message
   */
  public static function pingDistantFile($url)
  {
    $options = array(
      CURLOPT_FOLLOWLOCATION => true,CURLOPT_URL => $url,CURLOPT_FAILONERROR => true,// HTTP code > 400 will throw curl error
    );

    $ch = curl_init();
    curl_setopt_array($ch,$options);
    $return = curl_exec($ch);

    if ($return === false)
    {
      return curl_error($ch);
    }
    else
    {
      return true;
    }
  }

你也可以使用HEAD方法,但也许你的CDN被禁用了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读