首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载正文前处理卷曲头

下载正文前处理卷曲头
EN

Stack Overflow用户
提问于 2009-12-04 21:24:27
回答 3查看 3.7K关注 0票数 1

使用PHP和CURL (在本例中,除非有更好的选择而不是CURL ),在下载文件之前是否可以使用php函数处理头响应?

例如:

我有一个脚本,可以下载和处理用户提供的urls。我想添加一个检查,这样如果文件对我的进程无效(不是文本文件,太大,等等),那么在服务器浪费下载文件的时间之前,CURL请求就会被取消。

更新:解决方案 PEAR类HTTP_Request2:查询2/使您能够为连接设置观察者并随时抛出异常以取消连接。完全符合我的需要!

EN

回答 3

Stack Overflow用户

发布于 2009-12-04 21:26:56

使用cURL,执行HTTP请求来检查标头,如果它是有效的(状态为200),则执行完整的HTTP请求。

您必须设置的基本选项是CURLOPT_NOBODY,它将请求更改为类型头。

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_NOBODY, true);

然后,在执行查询后,需要检查可以使用getinfo()执行的返回状态。

代码语言:javascript
复制
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
票数 6
EN

Stack Overflow用户

发布于 2014-12-17 11:42:41

我知道这是个老生常谈的话题,但以防万一人们将来会来这里。

使用CURL,您可以使用WRITEFUNCTION,它让我们放置一个回调,该回调将在身体响应开始出现并需要编写时立即调用。此时,您可以读取标头并取消进程,正文将不会被下载。都是一次请求。

有关更深层次的内容和代码示例,请参见PHP/Curl:下载正文前检查响应头

票数 5
EN

Stack Overflow用户

发布于 2009-12-04 21:38:38

这是一个如何解决这个问题的例子:

代码语言:javascript
复制
// Include the Auth string in the headers
// Together with the API version being used
$headers = array(
    "Authorization: GoogleLogin auth=" . $auth,
    "GData-Version: 3.0",
);

// Make the request
curl_setopt($curl, CURLOPT_URL, "http://docs.google.com/feeds/default/private/full");
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($curl);
curl_close($curl);

// Parse the response
$response = simplexml_load_string($response);

// Output data
foreach($response->entry as $file)
{
       //now you can do what ever if file type is a txt
        //if($file->title =="txt")
        // do something
        else
        // do soething
    echo "File: " . $file->title . "<br />";
    echo "Type: " . $file->content["type"] . "<br />";
    echo "Author: " . $file->author->name . "<br /><br />";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1849723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档