對于PHP開發者來說,使用get_contents的函數已經是家常便飯了。該函數用來獲取指定url的內容,返回值是一個字符串。相較于file_get_contents函數,get_contents可以使用更多的參數,可以更加靈活地對所取得的內容進行處理。下面我們一起來詳細了解一下get_contents函數的使用方法。
首先,下面我們來看一個簡單的例子。假如我們需要獲取http://www.example.com這個頁面的內容,并將其打印在頁面上,可以使用下面的代碼:
$url = 'http://www.example.com'; $content = file_get_contents($url); echo $content;
上面的代碼很簡單,第一行定義了所要訪問的url,第二行用file_get_contents函數來獲取該url對應頁面的內容,最后一行使用echo語句將所獲得的內容輸出到頁面上。
然而,在實際應用中,我們經常需要通過get_contents函數來獲取一些需要登錄才能訪問的頁面,這時候就需要使用更多的參數來進行設置了。例如,我們需要登錄才能訪問http://www.example.com/login頁面,經過登錄后才能進入http://www.example.com/user頁面,以下是示例代碼:
$url = 'http://www.example.com/login'; $post_data = 'username=your_username&password=your_password'; $options = array( 'http' =>array( 'method' =>'POST', 'header' =>'Content-type: application/x-www-form-urlencoded', 'content' =>$post_data ) ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); $cookie = $http_response_header[6]; $url = 'http://www.example.com/user'; $options = array( 'http' =>array( 'method' =>'GET', 'header' =>'Cookie: ' . $cookie ) ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); echo $response;
在上面的示例代碼中,我們首先訪問登錄頁面,并使用post方式提交用戶名和密碼以模擬登錄。隨后,我們使用stream_context_create函數來創建一個包含我們所需參數的上下文。然后,我們使用file_get_contents函數來訪問登錄后的頁面,并將所獲取的cookie存入$cookie變量中。最后,我們再次使用stream_context_create函數來創建用于訪問已登錄頁面的上下文,并在header里設置cookie,從而成功登錄并獲取了頁面內容。
當然,上面的示例只是get_contents函數的冰山一角,該函數具有非常強大的功能,例如我們還可以使用其它方法來訪問https頁面、設置超時時間等等。如果你對此有進一步的研究,你會發現get_contents函數能為你的開發工作帶來很多便利。