404_2@
在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题。解决方法:设置默认访问为ipv4。@H_404_2@
PHP的curl设置方法如下:@H_404_2@ 代码如下:
404_2@PHP@H_404_2@/**@H_404_2@* IPV6下curl超时问题@H_404_2@*/@H_404_2@$ch = curl_init();@H_404_2@curl_setopt ($ch,CURLOPT_URL,$url);@H_404_2@curl_setopt ($ch,CURLOPT_RETURNTRANSFER,true);@H_404_2@//设置curl默认访问为IPv4@H_404_2@if(defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')){@H_404_2@curl_setopt($ch,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4);@H_404_2@}@H_404_2@//设置curl请求连接时的最长秒数,如果设置为0,则无限@H_404_2@curl_setopt ($ch,CURLOPT_CONNECTTIMEOUT,$timeout);@H_404_2@//设置curl总执行动作的最长秒数,如果设置为0,则无限@H_404_2@curl_setopt ($ch,CURLOPT_TIMEOUT,$timeout*3);@H_404_2@$file_contents = curl_exec($ch);@H_404_2@curl_close($ch);@H_404_2@
@H_404_2@curl_setopt($ch,CURL_IPRESOLVE_V4) 只有在PHP版本5.3及以上版本,curl版本7.10.8及以上版本时,以上设置才生效。