PHP卷曲使用Proxy时如何检索标头. CURLOPT_HEADERFUNCTION?
发布时间:2020-12-13 15:58:01 所属栏目:PHP教程 来源: $curl = curl_init();
curl_se
导读:我正在使用这样的代理连接到网站: $curl = curl_init();curl_setopt($curl,CURLOPT_PROXY,$proxy);curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_POST,1); curl_setopt($curl,CURLOPT_POSTFIELDS,$data);curl_setopt($curl,CURLOPT_RETUR
我正在使用这样的代理连接到网站:
$curl = curl_init(); curl_setopt($curl,CURLOPT_PROXY,$proxy); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_POST,1); curl_setopt($curl,CURLOPT_POSTFIELDS,$data); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl,CURLOPT_HEADER,TRUE); $result = curl_exec ($curl); 问题是CURLOPT_HEADER正在从代理连接返回标头,而我需要从实际请求到URL的标头.我相信解决方案涉及使用CURLOPT_HEADERFUNCTION但我不明白如何使用它. 我试过这个(取自其他地方的SO): curl_setopt($curl,CURLOPT_HEADERFUNCTION,"HandleHeaderLine"); 使用功能: function HandleHeaderLine($curl,$header_line ) { echo "<br>YEAH: ".$header_line; // or do whatever return strlen($header_line); } 但似乎我只能返回字节数.我不确定如何获得实际价值.在我的情况下,我只想要位置标题. 谢谢. 解决方法
CURLOPT_HEADERFUNCTION的匿名回调将需要访问您要在其中存储标头信息的变量.有几种不同的方法,但这里有一些例子:
使用方法: $headers = []; ... function HandleHeaderLine($curl,$header_line) use (&$headers) { ... if ($isHeaderIWant) { $header[] = 'some info'; } return strlen($header_line); } 使用类属性: private $headers = []; ... function HandleHeaderLine($curl,$header_line) { ... if ($isHeaderIWant) { $this->header[] = 'some info'; } return strlen($header_line); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |