在PHP中,我們常常需要從遠程服務(wù)器獲取內(nèi)容,這時我們就可以使用file_get_contents函數(shù)來獲取內(nèi)容。file_get_contents是PHP中非常常用的一個函數(shù),它可以讀取文件,讀取遠程URL的內(nèi)容或者讀取數(shù)據(jù)流等等。我們可以在php中通過HTTP協(xié)議,訪問遠程服務(wù)器上的數(shù)據(jù)流,并將數(shù)據(jù)流當(dāng)成字符串進行操作。
// 獲取百度首頁內(nèi)容 $url="http://www.baidu.com"; $content=file_get_contents($url); echo $content;
上述代碼我們可以通過file_get_contents獲取百度首頁的內(nèi)容,將結(jié)果打印輸出。這種方式獲取遠程內(nèi)容,無需任何參數(shù),非常簡潔方便。
同時,我們也可以使用file_get_contents與stream_context_create結(jié)合使用,可以在獲取到遠程的內(nèi)容的同時,對遠程服務(wù)器請求進行更改。比如改變請求頭部。
// 改變請求頭部,去除gzip壓縮 $options=['http'=>['header'=>'Accept-Encoding:']]; $content=file_get_contents($url,false,stream_context_create($options));
上述例子中,我們通過設(shè)置header事件,去掉了gzip壓縮。這樣就可以避免需要去解壓頁面。
file_get_content函數(shù)是PHP中常用的遠程數(shù)據(jù)獲取函數(shù)。它可以方便的獲取對應(yīng)URL上的內(nèi)容(html、xml、json等),同時它也可以方便的下載內(nèi)容到本地。
//將遠程圖片下載到本地mylogo.png $url='http://example.com/mylogo.png'; $image=file_get_contents($url); file_put_contents('mylogo.png',$image);
file_get_content函數(shù)也可以和其它函數(shù)配合使用,如json_decode等可以把JSON數(shù)據(jù)解碼為PHP數(shù)組。
$url='http://example.com/data.json'; $content=file_get_contents($url); $data=json_decode($content,true);
當(dāng)然,雖然file_get_content對于我們獲取遠程內(nèi)容非常的方便,但是我們需要注意的是,如果需要獲取大文件或者遠程內(nèi)容響應(yīng)速度較慢時,我們需要使用更為穩(wěn)定高效的方式來獲取內(nèi)容,如使用curl等方式。
總之,file_get_contents是一個好用、方便的函數(shù),但需要注意安全和效率的問題。