深入file_get_contents函数抓取内容失败的原因分析
用file_get_contents来抓取页面内容不成功,可能是因为有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容。那就是可以使用另外一个函数curl。
下面是file_get_contents和curl两个函数同样功能的不同写法
file_get_contents函数的使用示例:
代码如下:
< ?php
$file_contents = file_get_contents(‘http://www.jb51.net');
echo $file_contents;
?>
< ?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, ‘http://www.jb51.net');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
相关推荐
-
PHP中file_get_contents高級用法实例
本文实例讲述了PHP中file_get_contents高级用法,分享给大家供大家参考.具体分析如下: 首先解决file_get_contents的超时问题,在超时返回错误后就象js中的settimeout那样进行一次尝试,错误超过3次或者5次后就确认为无法连线伺服器而彻底放弃. 这裡就简单介绍两种解决方法: 一.增加超时的时间限制 注意:set_time_limit只是设定你的PHP程式的超时时间,而不是file_get_contents函数读取URL的超时时间. 我一开始以为set_time
-
php中file_get_contents与curl性能比较分析
本文实例讲述了php中file_get_contents与curl性能比较分析.分享给大家供大家参考.具体如下: 在php中如果不仔细的去分析性能会发现file_get_contents与curl两个同很多共同点的,他们都可以采集文件打开文件,但是如果仔细一对比会发现很多不同点,下面我们一起来看看file_get_contents与curl区别. PHP中fopen,file_get_contents,curl函数的区别: 1.fopen /file_get_contents 每次请求都会重新做
-
php file_get_contents抓取Gzip网页乱码的三种解决方法
把抓取到的内容转下编码即可($content=iconv("GBK", "UTF-8//IGNORE", $content);),我们这里讨论的是如何抓取开了Gzip的页面.怎么判断呢?获取的头部当中有Content-Encoding: gzip说明内容是GZIP压缩的.用FireBug看一下就知道页面开了gzip没有.下面是用firebug查看我的博客的头信息,Gzip是开了的. 复制代码 代码如下: 请求头信息原始头信息Accept text/html,appl
-
PHP file_get_contents设置超时处理方法
file_get_contents的超时处理 话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据. 今天说的这篇是讲超时的,确实在跨服务器提交的时候,不可避免的会遇到超时的情况,这个时候怎么办?set_time_limit是没有用的,只有用context中的timeout时间来控制.相反,我们不是要抑止,而
-
php读取本地文件常用函数(fopen与file_get_contents)
下面我们以.txt文件为实例来介绍php读取本地文件的函数,读取文件我们可以利用fopen或file_get_contents来读取,file_get_contents更简单而fopen需要fread配合才可以显示读出的内容. 1.首先来介绍一下fopen()函数 下面我们给出了一个直接打开本地文件的代码demo,必要的地方我们都已经加上了注释: 复制代码 代码如下: //直接打开一个本地文件的实例代码 <?php //假若我们本地的文件是一个名为xmlas.txt的文本
-
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
方法一: 在php中,抓取https的网站,提示如下的错误内容: Warning: file_get_contents() [function.file-get-contents]: failed to open stream: Invalid argument in I:Webmyphpa.php on line 16 打开php.ini文件找到 ;extension=php_openssl.dll ,去掉双引号";" ,重启web服务器即可. apache服务器的话,可以同时启用m
-
php 使用file_get_contents读取大文件的方法
当我们遇到文本文件体积很大时,比如超过几十M甚至几百M几G的大文件,用记事本或者其它编辑器打开往往不能成功,因为他们都需要把文件内容全部放到内存里面,这时就会发生内存溢出而打开错误,遇到这种情况我们可以使用PHP的文件读取函数file_get_contents()进行分段读取. 函数说明 string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset
-
解决file_get_contents无法请求https连接的方法
错误: Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? 解决方案有3: 1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了. 2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访
-
解析PHP中的file_get_contents获取远程页面乱码的问题
PHP的file_get_contents获取远程页面内容,如果是gzip编码过的,返回的字符串就是编码后的乱码1.解决方法,找个ungzip的函数来转换下2.给你的url加个前缀,这样调用$content = file_get_contents("compress.zlib://".$url);无论页面是否经过gzip压缩,上述代码都可以正常工作!使用curl模块同样可解决问题 复制代码 代码如下: function curl_get($url, $gzip=false){
-
解析file_get_contents模仿浏览器头(user_agent)获取数据
什么是user agentUser Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言.浏览器插件等.网站可以通过判断不同UA来呈现不同的网站,例如手机访问和PC访问显示不同的页面.PHP在用file_get_contents函数采集网站时,有时会明明用浏览器可以看,但就是采不到任何内容.这很有可能是服务器上做了设置,根据 User_agent判断是否为正常的浏览器请求,因为默认PHP的
-
file_get_contents("php://input", "r")实例介绍
解释不清,直接上例子index.html 复制代码 代码如下: <form action="action.php" method="post" > <input type="text" name="userName" id="userName" /><br/> <input type="text" name="userPass&q
随机推荐
- 解决maven build 无反应,直接terminated的问题
- DOS命令批量删除文件及制作该命令的批处理命令详解
- Java并发编程示例(九):本地线程变量的使用
- php用户注册信息验证正则表达式
- CentOS 6.3下给PHP添加mssql扩展模块教程
- jsp中自定义Taglib详解
- C++对象内存分布详解(包括字节对齐和虚函数表)
- 有关jQuery中parent()和siblings()的小问题
- Python使用爬虫猜密码
- jquery ezUI 双击行记录弹窗查看明细的实现方法
- js表单序列化判断空值的实例
- 判定对象是否为window的js代码
- C++实现单链表按k值重新排序的方法
- Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)
- 妙用Bootstrap的 popover插件实现校验表单提示功能
- java实现单链表增删改查的实例代码详解
- 微信小程序6位或多位验证码密码输入框功能的实现代码
- IntelliJ IDEA中SpringBoot项目通过devtools实现热部署的方法
- python实现微信防撤回神器
- python读取文本绘制动态速度曲线