1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php curl获取网页内容(IPV6下超时)的解决办法

php curl获取网页内容(IPV6下超时)的解决办法

时间:2023-07-31 14:42:23

相关推荐

php curl获取网页内容(IPV6下超时)的解决办法

php教程|php手册

php,curl,获取网页

php教程-php手册

天堂1源码详解,vscode可以ftp吗,ubuntu亮瞎了,tomcat多个war,安卓登录访问sqlite,最专业的爬虫网站是什么,php 数组赋值给变量,新浪博客seo 引流,wap网站源码下载 aspx,别人网页的源码,招商加盟模板lzw

如果开启了IPv6,curl默认会优先解析 IPv6,在对应域名没有 IPv6 的情况下,会等待 IPv6 dns解析失败 timeout 之后才按以前的正常流程去找 IPv4

安卓串口源码,vscode 关联PDF,ubuntu 键值,tomcat 端口转发,腾讯sqlite3,audio player插件,哈尔滨前端的三大框架,爬虫抓视频教程,php的执行权限,嘉善seo推广优势,discuz 网站,网页导航 分类,5ucms 无法加载模板lzw

微信小游戏象棋源码,ubuntu解压到硬盘,tomcat命令行怎么关,儿童皮肤爬虫,php广告到期自动下广告,seo6889lzw

原因:

在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题。

解决方法:设置默认访问为ipv4。

php的curl设置方法如下:

复制代码 代码如下:

<?php

/**

* IPV6下curl超时问题

*/

$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, $url);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

//设置curl默认访问为IPv4

if(defined(‘CURLOPT_IPRESOLVE’) && defined(‘CURL_IPRESOLVE_V4’)){

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

}

//设置curl请求连接时的最长秒数,如果设置为0,香港服务器,则无限

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

//设置curl总执行动作的最长秒数,如果设置为0,则无限

curl_setopt ($ch, CURLOPT_TIMEOUT,$timeout*3);

$file_contents = curl_exec($ch);

curl_close($ch);

注:curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4) 只有在php版本5.3及以上版本,curl版本7.10.8及以上版本时,网站空间,以上设置才生效。

,香港虚拟主机

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。