作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先我初始化 curl 句柄:
$ch = curl_init();
接下来我设置 url 和 referer header :
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_REFERER,$referer);
最后执行语句:
curl_exec($ch);
现在我可以使用另一个 url 而无需关闭并重新打开句柄,所以:
curl_setopt($ch,CURLOPT_URL,$another_url);
这里开始令人头疼,因为我不知道如何禁用将发送给服务器的 referer header ,当然我已经尝试放置 false
和 null
进入 CURLOPT_REFERER 但它导致 referer 字段为空,即 Referer:
仍然发送到服务器但没有值(这对 http 规范来说是否正确?)。
是否有任何选项可以在不关闭和重新实例化 curl 句柄的情况下完全删除 header ?
我想避免它,因为 curl 会保持连接打开一段时间,如果我在从同一主机下载时不断关闭句柄,可能会花费更多时间。
最佳答案
您可以完全删除 referer 字段或通常由 curl 处理的任何其他字段,方法是将其在“:”之后不带任何内容地传递给 CURLOPT_HTTPHEADER
:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer:"));
而且它根本不会出现在标题中。
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTHTTPHEADER
关于php - 如何从 curl 句柄中删除先前设置的请求 header 引用字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8126704/
我是一名优秀的程序员,十分优秀!