读取文件,读取网页,file_get_contents总是首选。既简单,又高效。
读取网页:
$content = file_get_contents("http://imhuchao.com")
这里要说的是file_get_contents的一些”高级”的用法,平时大概用不上。
file_get_contents可以用来发送post请求,设定超时时间等等,不弱于curl。
函数说明是这样子的
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
其中第三个参数$context能够让file_get_content发送post请求,控制超时等功能
先看一个简单地例子,下面是一个发送post数据的示例,并且设定超时时间为5s
//发送的post数据
$data = array("hello"=>"1");
// 创建contentxt流
$opts = array(
'http'=>array(
'method'=>"POST",
'content'=>http_build_query($data),
'timeout'=>'5'
)
);
$context = stream_context_create($opts);
$file = file_get_contents('http://www.example.com', false, $context);
?>
http context的参数项
http的context有这么一些参数,根据这些组合能让file_get_contents不弱于curl
method (string)
远程服务器支持的 GET,POST 或其它 HTTP 方法。
默认值是 GET。
header (string)
请求期间发送的额外 header 。在此选项的值将覆盖其他值 (诸如 User-agent:, Host: 和 Authentication:)。
user_agent string
要发送的 header User-Agent: 的值。如果在上面的 header context 选项中没有指定 user-agent,此值将被使用。
默认使用 php.ini 中设置的 user_agent。
content (string)
在 header 后面要发送的额外数据。通常使用POST或PUT请求。
proxy (string)
URI 指定的代理服务器的地址。(e.g. tcp://proxy.example.com:5100).
request_fulluri (boolean)
当设置为 TRUE 时,在构建请求时将使用整个 URI 。(i.e. GET http://www.example.com/path/to/file.html HTTP/1.0)。 虽然这是一个非标准的请求格式,但某些代理服务器需要它。
默认值是 FALSE.
follow_location (integer)
跟随 Location header 的重定向。设置为 0 以禁用。
默认值是 1。
max_redirects (integer)
跟随重定向的最大次数。值为 1 或更少则意味不跟随重定向。
默认值是 20。
protocol_version float
HTTP 协议版本。
默认值是 1.0。
Note:
PHP 5.3.0 以前的版本没有实现分块传输解码。 如果此值设置为 1.1 ,与 1.1 的兼容将是你的责任。
timeout (float)
读取超时时间,单位为秒(s),用 float 指定(e.g. 10.5)。
默认使用 php.ini 中设置的 default_socket_timeout。
ignore_errors (boolean)
即使是故障状态码依然获取内容。
默认值为 FALSE.
附录
file_get_contents的参数
filename
要读取的文件的名称。
use_include_path
Note:
As of PHP 5 the FILE_USE_INCLUDE_PATH can be used to trigger include path search.
context
A valid context resource created with stream_context_create(). 如果你不需要自定义 context,可以用 NULL 来忽略。
offset
The offset where the reading starts on the original stream.
Seeking (offset) is not supported with remote files. Attempting to seek on non-local files may work with small offsets, but this is unpredictable because it works on the buffered stream.
maxlen
Maximum length of data read. The default is to read until end of file is reached. Note that this parameter is applied to the stream processed by the filters.
你可能还喜欢下面这些文章
c语言中的define用法
作为代码中,第一个看到的,极有可能就是define这个东西,称为宏!(define是可以出现在任何地方的,但是我们一般把这个写到最开始)然而,很多时候,初学者有时候可能看不懂她,因此,我的c语言学习的第一篇就写这个啦。define基本用法,简单定义最浅显的,define能用一个有含义的字符来替代一些数字,比如#define PI 3.141592654这样,假如以后要计算圆的周长或者面积,就可以用PI这个字符而不用写3.141592654啦。比如#define PI 3.141592654#include “stdio.h”int main(){ int r = 3; float
看看php的boolean都有哪些,以及其有趣的用法
在写if的时候,在写while的时候,总感觉不写一个true或者false就难受。是的,你还不明确php里面都有哪些值是true,哪些值是false!除了false的,都是true!php里面为false的东西 布尔值 FALSE 本身 整型值 0(零) 浮点型值 0.0(零) 空字符串,以及字符串 “0” 不包括任何元素的数组 不包括任何成员变量的对象(仅 PHP 4.0 适用) 特殊类型 NULL(包括尚未赋值的变量) 从空标记生成的 SimpleXML 对象 既然说了除了false以外的都是true了,那么就别天真的以为-1是false了,它也是true。有
linux命令:ls用法,列出文件及目录
原标题:每天一个linux命令(1):ls命令ls 命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单,如果ls指定其他目录那么就会显示指定目录里的文 件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等。ls 命令在日常的linux操作中用的很多!ls命令格式ls [选项] [目录名]命令功能列出目标目录中所有的子目录和文件。常用参数-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当
linux awk命令分析你的文本或日志,awk命令用法
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您
使用php curl 的并发能力可以做什么
在php中,没有多线程让编程变得简单。但在一些需要并发提升性能的场景下,显得有些无能为力,比如发起一些http请求。但好在curl扩展可以让我们“并发”去请求网络资源。利用这个特点,我们能做很多有趣的事情。最基础的,并发请求网络资源,提升处理速度。并发访问代码<?phpclass ConcurrencyHTTP { private $_requests; private $_callbacks; private $_currentIndex = 0; public function get($url, $header = array(), $timeout = 3