解析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){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
if($gzip) curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 关键在这里
$content = curl_exec($curl);
curl_close($curl);
return $content;
}
相关推荐
-
PHP使用fopen与file_get_contents读取文件实例分享
php中读取文件可以使用fopen和file_get_contents这两个函数,二者之间没有本质区别,只是前者读取文件的php代码相比后者要复杂一点.本文章通过实例向大家讲解fopen和file_get_contents读取文件的实现代码.需要的码农可以参考一下. fopen读取文件的代码如下: <?php $file_name = "1.txt"; echo $file_name . " "; $fp = fopen($file_name, 'r'); /
-
深入php函数file_get_contents超时处理的方法详解
一.增加超时的时间限制 这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间.真正的修改 file_get_contents延时可以用resource $context的timeout参数: 复制代码 代码如下: $opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60,
-
php读取本地文件常用函数(fopen与file_get_contents)
下面我们以.txt文件为实例来介绍php读取本地文件的函数,读取文件我们可以利用fopen或file_get_contents来读取,file_get_contents更简单而fopen需要fread配合才可以显示读出的内容. 1.首先来介绍一下fopen()函数 下面我们给出了一个直接打开本地文件的代码demo,必要的地方我们都已经加上了注释: 复制代码 代码如下: //直接打开一个本地文件的实例代码 <?php //假若我们本地的文件是一个名为xmlas.txt的文本
-
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
后来,我通过跟踪发现,这类情况的出现,跟 PHP 的 file_get_contents() 函数有着密切的关系. 大.中型网站中,基于 HTTP 协议的 API 接口调用,是家常便饭.PHP 程序员们喜欢使用简单便捷的 file_get_contents("http://example.com/") 函数,来获取一个 URL 的返回内容,但是,如果 http://example.com/ 这个网站响应缓慢,file_get_contents() 就会一直卡在那儿,不会超时. 我们知道
-
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
-
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
-
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中的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){
-
jquery中使用ajax获取远程页面信息
效果图如下: 先贴前台代码:其中关键代码是 通过span标记的data(自定义属性)绑定Id 复制代码 代码如下: <asp:GridView ID="GvCollect" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" onrowdeleting="GvCollect_RowDeleting" EnableModelValid
-
Linux中scp命令获取远程文件的方法
一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度. 二.scp有什么用? 1.我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的: 2.我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无
-
一次性下载远程页面上的所有内容第1/2页
一次性下载远程页面上的所有内容使用方法,将上面的代码保存为一个比如:downfile.asp在浏览器上输入:http://你的地址/downfile.asp?url=http://www.baidu.com/index.html <%'设置超时的时间Server.ScriptTimeout=9999'##############'文件保存函数'#############function SaveToFile(from,tofile)on error resume nextdim geturl,o
-
PHP curl 或 file_get_contents 获取需要授权页面的方法
今天因工作需要,需要用 curl / file_get_contents 获取需要授权(Authorization)的页面内容,解决后写了这篇文章分享给大家. PHP curl 扩展,能够在服务器端发起POST/GET请求,访问页面,并能获取页面的返回数据. 例如要获取的页面:http://localhost/server.php <?php $content = isset($_POST['content'])? $_POST['content'] : ''; header('content-
-
PHP中使用CURL获取页面title例子
通过PHP获取页面title内容的实战演示: 范例代码: 复制代码 代码如下: <?php /* 功能: 取得 URL 页面上的 <title> 内容 参数:$_POST['url'] */ // 设置最长执行的秒数 ini_set ("expect.timeout", 30); set_time_limit(30); // 检查 URL if(!isset($_POST['url']) || $_POST['url']
-
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
天气终于晴了,但问题来了.在实现两个站点间用户数据同步,当使用php函数 file_get_contents抓取执行远程页面时,如果连接超时将会输出一个Fatal Error或相当的慢,结果导致下面的代码不能运行.先了解一下PHP file_get_contents() 函数 定义和用法 file_get_contents() 函数把整个文件读入一个字符串中. 和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串. file_get_contents()
-
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
首先创建user表,里面有:id, name, password,remember_token等字段. 然后再Models添加表模型User.php <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use DB; class User extends Model
-
asp.net中获取远程网页的内容之一(downmoon原创)
获取远程网页的内容之一(downmoon原创) 一.本机直接上网时: 获取指定远程网页内容#region 获取指定远程网页内容 复制代码 代码如下: /**//// <summary> /// 获取指定远程网页内容 /// </summary> /// <param name="strUrl">所要查找的远程网页地址</param> /// <param nam
-
Jquery方式获取iframe页面中的 Dom元素
测试页面代码: 复制代码 代码如下: <html> <head> <title>jquery方式,访问iframe页面dom元素</title> <meta name="Author" content="孙勤波"> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> &l
随机推荐
- 利用jQuery实现简单的拖曳效果实例代码
- 浅谈利用JavaScript进行的DDoS攻击原理与防御
- 权限控制之粗粒度与细粒度概念及实现简单介绍
- python提取字典key列表的方法
- CentOS 7下用yum快速安装MongoDB的方法教程
- Extjs优化(二)Form表单提交通用实现
- emapicn.exe,winpac.exe恶意插件疯弹广告解决方法
- 批处理 API实现文件下载的代码第1/2页
- 深度定制Python的Flask框架开发环境的一些技巧总结
- ASP.NET中GridView、DataList、DataGrid三个数据控件foreach遍历用法示例
- 在JavaScript并非所有的一切都是对象
- 轻松安装docker并运行docker swarm模式
- Android星级评分条控件RatingBar使用详解
- PHP中strpos、strstr和stripos、stristr函数分析
- JavaScript四种调用模式和this示例介绍
- 服务器硬件知识普及篇(需要配置服务器的朋友可以参考)第1/7页
- 屏蔽端口的vbs脚本
- 解析如何在C语言中调用shell命令的实现方法
- MySQL server has gone away错误提示解决方法
- JavaScript设计模式初探