【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
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 |