首先,讓我們看一下它的函數原型:
string file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
其中,$filename是我們要獲取內容的URL地址,$use_include_path表示是否在include_path中搜索文件名,$context是可選的,它包含了HTTP請求頭、POST數據、請求COOKIE等信息,$offset用于定義要讀取的文件偏移量,而$maxlen用于讀取文件的長度。下面就是一個簡單的例子:
$url = 'http://www.baidu.com';
$result = file_get_contents($url);
echo $result;
上面的代碼中,我們定義了一個$url變量存儲要獲取的URL地址,并使用file_get_contents方法獲取將其內容賦值給$result變量,最后使用echo語句將內容輸出到屏幕上。
在獲取URL內容時,我們經常會需要指定一些請求頭信息或提交POST數據。這時,我們就可以使用$context參數進行設置。下面是一個獲取頁面標題的例子:
$url = 'http://www.baidu.com';
$options = array(
'http' => array(
'method' => 'GET',
'header' => 'Content-type:application/x-www-form-urlencoded\r\n'
)
);
$context = stream_context_create($options);
$result = file_get_contents($url,false,$context);
if(preg_match('/(.*?)<\/title>/i',$result,$matches)){
echo '頁面標題為:' . $matches[1];
}
上面的代碼中,我們定義了一個$options變量用于存儲請求頭信息,包括請求方法和Content-Type。然后,通過stream_context_create方法創建一個流上下文,該上下文包含了$options參數。最后,我們使用file_get_contents方法獲取URL內容,并使用正則表達式獲取了頁面標題。
另外,有時我們需要更底層的控制權來獲取URL內容,這時我們可以使用curl擴展來完成。下面是一個使用curl獲取URL內容的例子:
function get_url_content($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
上面的代碼中,我們定義了一個get_url_content函數,它使用curl初始化URL并設置一些參數,如返回結果以字符串形式保存、不返回頭信息等。最后,我們關閉curl連接并返回結果。
綜上所述,PHP GetUrlContent是一個非常實用的函數,它為我們獲取指定URL的文本內容提供了便利。在使用過程中,我們可以根據需要設置請求頭信息、提交POST數據等。當需要更底層的控制權時,我們可以使用curl擴展來實現。