PHP中的file_get_contents函数应用非常广泛,我们可以利用file_get_contents获取远程网址中的网页内容。例如有的域名查询接口,就是通过这种方式获取查询结果的。它的原理是先从本网站里发送一条GET请求到远程服务器中的某个页面,再将该页面的结果返回到本网站里并通过程序接收返回的内容。采用这种技术我应用非常多,例如天气查询、快递查询等等,比比皆是。且看下列代码。
$Get_Str = file_get_contents("远程网址");
if($Get_Str == false) //如果获取不成功,则返回false
{
echo("获取不成功");
}
else
{
$myarr = explode(",",$Get_Str);
//后续处理……
}
这要求提前预知远程网址所返回内容的格式,然后才能对接收到的内容进行格式化处理。例如上面的代码中,我们预知远程代码中的返回内容格式均以,号进行分隔,然后通过对字符串进行分割处理,得出各项数据再进行后续处理。
假设要实现下列功能:
我们希望从A站中获取B站中的学生成绩数据,那就要先在B站中写一个数据库读取的程序,比如根据学号获取学生姓名及各科的成绩,该页地址为http://www.b.com/get.php,该页返回数据格式为:学号,姓名,语文成绩,数学成绩。OK,再在B站中获取A站中的数据,获取方式为:
$Get_Str = file_get_contents("http://www.b.com/get.php?xuehao=1") //表示从B站中获取学号为1的学生信息。
再通过以下代码将获得的内容进行格式化处理:
$myarr = explode(",",$Get_Str); //由于B站中的get.php返回格式是以,号分隔的,格式化数据时同样用,号进行分割,得到我们最终想要的数据:
$myarr[0] => 学号
$myarr[1] => 姓名
$myarr[2] => 语文成绩
$myarr[3] => 数学成绩
很简单的操作,但是应用范围却十分广泛,十分强大。