几乎任何工作的
PHP程序员都不得不使用CURL发送原始HTTP请求,无论是用于信用卡付款处理,恶意屏幕抓取还是其间的内容.
几乎任何PHP程序员聚集的论坛都有大量的can’t get the cURL functions to do what they want人.
当cURL不适合您时,您使用哪些疑难解答技术来确定为什么它不起作用? PHP的卷曲实现有什么奇怪的问题你遇到了吗?如果有人在论坛上提出“HALP MY CURL IZ BROKEN”问题,那么您需要采取什么步骤才能确定他们的请求为何不起作用?
我发现CURLINFO_HEADER_OUT选项非常有用.
<?PHP $curl = curl_init('http://www.PHP.net'); curl_setopt($curl,CURLOPT_HEADERFUNCTION,'dbg_curl_data'); curl_setopt($curl,CURLOPT_WRITEFUNCTION,CURLINFO_HEADER_OUT,true); curl_exec($curl); echo '<fieldset><legend>request headers</legend> <pre>',htmlspecialchars(curl_getinfo($curl,CURLINFO_HEADER_OUT)),'</pre> </fieldset>'; echo '<fieldset><legend>response</legend> <pre>',htmlspecialchars(dbg_curl_data(null)),'</pre> </fieldset>'; function dbg_curl_data($curl,$data=null) { static $buffer = ''; if ( is_null($curl) ) { $r = $buffer; $buffer = ''; return $r; } else { $buffer .= $data; return strlen($data); } }