PHP中的file_get_contents函數(shù)應用非常廣泛,我們可以利用file_get_contents獲取遠程網址中的網頁內容。例如有的域名查詢接口,就是通過這種方式獲取查詢結果的。它的原理是先從本網站里發(fā)送一條GET請求到遠程服務器中的某個頁面,再將該頁面的結果返回到本網站里并通過程序接收返回的內容。采用這種技術我應用非常多,例如天氣查詢、快遞查詢等等,比比皆是。且看下列代碼。
$Get_Str = file_get_contents("遠程網址");
if($Get_Str == false) //如果獲取不成功,則返回false
{
echo("獲取不成功");
}
else
{
$myarr = explode(",",$Get_Str);
//后續(xù)處理……
}
這要求提前預知遠程網址所返回內容的格式,然后才能對接收到的內容進行格式化處理。例如上面的代碼中,我們預知遠程代碼中的返回內容格式均以,號進行分隔,然后通過對字符串進行分割處理,得出各項數(shù)據(jù)再進行后續(xù)處理。
假設要實現(xiàn)下列功能:
我們希望從A站中獲取B站中的學生成績數(shù)據(jù),那就要先在B站中寫一個數(shù)據(jù)庫讀取的程序,比如根據(jù)學號獲取學生姓名及各科的成績,該頁地址為http://www.b.com/get.php,該頁返回數(shù)據(jù)格式為:學號,姓名,語文成績,數(shù)學成績。OK,再在B站中獲取A站中的數(shù)據(jù),獲取方式為:
$Get_Str = file_get_contents("http://www.b.com/get.php?xuehao=1") //表示從B站中獲取學號為1的學生信息。
再通過以下代碼將獲得的內容進行格式化處理:
$myarr = explode(",",$Get_Str); //由于B站中的get.php返回格式是以,號分隔的,格式化數(shù)據(jù)時同樣用,號進行分割,得到我們最終想要的數(shù)據(jù):
$myarr[0] => 學號
$myarr[1] => 姓名
$myarr[2] => 語文成績
$myarr[3] => 數(shù)學成績
很簡單的操作,但是應用范圍卻十分廣泛,十分強大。