• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php curl_init curl 消息头和消息体

php 搞代码 3年前 (2022-01-25) 14次浏览 已收录 0个评论
文章目录[隐藏]

给定一个 远程图片地址(http地址) 然后用curl 请求 通过检查返回的 消息头 判断远程图片是否存在
但是这里有个严重的效率问题就是消息体
消息体把图片也给返回了 有设置可以 只产生消息体 让消息体为空或者或不产生消息体吗

<code>//检查远程文件function checkRemoteFile($file_name, $path) {    $path = $path . "/" . $file_name;    $ch = curl_init();    $timeout = 30;  //在尝试连接时等待的秒数。设置为0,则无限等待。    curl_setopt($ch, CURLOPT_URL, $path);    curl_setopt($ch, CURLOPT_HEADER, 1);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);    $contents = curl_exec($ch);//echo $contents;    if (preg_match("/404/", $contents)) {        echo '0';        return false;    } elseif(preg_match("/200/", $contents)) {        echo $contents;        return true;    }} </code>

回复内容:

给定一个 远程图片地址(http地址) 然后用curl 请求 通过检查返回的 消息头 判断远程图片是否存在
但是这里有个严重的效率问题就是消息体
消息体把图片也给返回了 有设置可以 只产生消息体 让消息体为空或者或不产生消息体吗

<code>//检查远程文件function checkRemoteFile($file_name, $path) {    $path = $path . "/" . $file_name;    $ch = curl_init();    $timeout = 30;  //在尝试连接时等待的秒数。设置为0,则无限等待。    curl_setopt($ch, CURLOPT_URL, $path);    curl_setopt($ch, CURLOPT_HEADER, 1);    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);    $contents = curl_exec($ch);//echo $contents;    if (preg_match("/404/", $contents)) {        echo '0';        return false;    } elseif(preg_match("/200/", $contents)) {        echo $contents;        return true;    }} </code>

@本文来源gaodaimacom搞#代%码@网-搞代gaodaima码

不用curl不就行了,fopen好像也可以打开远程文件吧。

<code>$hd = fopen($remoteUrl, 'r');if ($hd === false) die('404')else fclose($hd);</code>

哦,看到你的评论了,用 curl_setopt($ch, CURLOPT_NOBODY, true); 看看

curl不可以吗?你试试这个呢!

<code>public function checkRemoteHttpFileExists($url) {    $curl = curl_init($url);    // 不取回数据    curl_setopt($curl, CURLOPT_NOBODY, true);    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');    // @curl_setopt($curl, CUROPT_RETURNTRANSFER,1);    // 发送请求    $result = @curl_exec($curl);    $found = false;    // 如果请求没有发送失败    if ($result !== false) {        // 再检查http响应码是否为200        $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);        if ($statusCode == 200) {            $found = true;        }    }    curl_close($curl);    return $found;}</code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php curl_init curl 消息头和消息体
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址