【php】PHP中file_get_contents()与file_put_contents()函数细节详解
file_get_contents函数
一般的也就是使用file_get_contents($url),但是关于这个函数还有很多没有注意到的地方。
先看关于手册:
file_get_contents(path,include_path,context,start,max_length)
参数
描述
path
必需。规定要读取的文件。
include_path
可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 “1″。
context
可选。规定文件句柄的环境。
context 是一套可以修改流的行为的选项。若使用 null,则忽略。
start
可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length
可选。规定读取的字节数。该参数是 PHP 5.1 新加的。
——————-可以选择读取文件位置和长度这个选项不错。但是关于context的选项是做什么用的呢?
强大的context——stream_context_create
context 就是文本流的意思。而在php中创建文本流的函数是:stream_context_create
参看官方手册:http://php.net/manual/en/function.stream-context-create.php
stream_context_create是用来创建打开文件的上下文件选项的,比如用POST访问,使用代理,发送header等。看到没有之前用curl实现的所谓代理,post,header方法都可以使用file_get_contents+stream_context_create来实现。
之前在《PHP批量采集下载美女图片》中抱怨file_get_contents采集图片时候经常会遇到慢资源造成cpu负载过高,不能设置超时时间,最后使用curl来实现,其实file_get_contents也可以设置超时时间。
file_get_contents超时设置
1 |
2 |
3 |
这样就可以实现设置10s的超时时间
更强大的file_get_contents
file_get_contents实现post
参看官方手册的例子
1 |
2 |
3 |
4 |
5 |
6 |