为了账号安全,请及时绑定邮箱和手机立即绑定

仅通过curl在php中检索标头

仅通过curl在php中检索标头

PHP
富国沪深 2019-09-26 10:55:16
其实我有两个问题。(1)如果仅检索标头而不是使用php和curl进行全页检索,那么在远程服务器上使用的处理能力或带宽是否有所减少?(2)因为我认为并且可能是错误的,所以第一个问题的答案是YES,我试图获取远程文件的最后修改日期或If-Modified-Since标头只是为了与它的时间日期进行比较本地存储的数据,因此,如果数据已更改,我可以将其存储在本地。但是,NULL运行此脚本时,我的脚本似乎无法获取该信息:class last_change {  public last_change;  function set_last_change() {   $curl = curl_init();     curl_setopt($curl, CURLOPT_URL, "http://url/file.xml");     curl_setopt($curl, CURLOPT_HEADER, true);     curl_setopt($curl, CURLOPT_FILETIME, true);     curl_setopt($curl, CURLOPT_NOBODY, true);   // $header = curl_exec($curl);   $this -> last_change = curl_getinfo($header);   curl_close($curl);  }  function get_last_change() {   return $this -> last_change['datetime']; // I have tested with Last-Modified & If-Modified-Since to no avail  }}如果$header = curl_exec($curl)未输入,则显示标题数据,即使我没有要求也是如此,如下所示:HTTP/1.1 200 OKDate: Fri, 04 Sep 2009 12:15:51 GMTServer: Apache/2.2.8 (Linux/SUSE)Last-Modified: Thu, 03 Sep 2009 12:46:54 GMTETag: "198054-118c-472abc735ab80"Accept-Ranges: bytesContent-Length: 4492Content-Type: text/xml基于此,返回“ Last-Modified”。那么,我在做什么错呢?
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

(1)是的。HEAD请求(在这种情况下就是您要发出的)在服务器上要轻得多,因为它只返回HTTP标头,而不是标头和内容(如标准GET请求)。

(2)您需要true在调用之前将CURLOPT_RETURNTRANSFER选项设置为,curl_exec()以返回内容,而不是打印内容:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

那也应该使您的课堂正常工作。


查看完整回答
反对 回复 2019-09-26
  • 3 回答
  • 0 关注
  • 373 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信