最近想要实现一种能远程批量获取xml的php类,在以前申请的免费空间中做测试,测试成功,并记录下来:
先前我把页面存放在多个服务器上比如A,B,C代表3个不同站点,上面存放xml文件。
那么思路是这样的:先用file_get_contents函数远程调用xml过来,再对xml判断→分析页面含有指定元素→再做下一步处理
$pageback=file_get_contents($url."createxml.php");
if(strstr($pageback,"playlist")) { //判断链接中是否含有playlist关键字
$xml = new DOMDocument();
$xml->load($url.'playlist.xml'); //条件通过就调用xml文件
foreach($xml->getElementsByTagName('url') as $url) {
$value = $url->firstChild->nodeValue;
echo '<track><url>'.$value.'</url></track>'; //生成xml节点
}
}
上面的处理函数可以放进function中,然后把变量$url赋上A,B,C站点路径,就可以对其进行相应处理了:
<?php
function getxml($url){ //建立function
$pageback=file_get_contents($url."createxml.php");
if(strstr($pageback,"playlist")) {
$xml = new DOMDocument();
$xml->load($url.'playlist.xml');
foreach($xml->getElementsByTagName('url') as $url) {
$value = $url->firstChild->nodeValue;
echo '<track><url>'.$value.'</url></track>';
}
}
}
$url=http://a.malu.me/test/; //A远程链接
getxml($url); //调用function
$url=http://b.malu.me/test/; //B远程链接
getxml($url); //调用function
$url=http://c.malu.me/test/; //C远程链接
getxml($url); //调用function
?>
总结:依据上面原理其实包含了对远程页面的获取判断,我们可以依据这一函数稍作修改,加个循环来做一个批量探测网页是否可访问的php函数。同样其他的应用就发挥大家的想象力吧。
题外话:陋室博客原创文章,刚把博客文章设置成同步到人人网和腾讯微博还有新浪微博以及QQ空间,原文地址发布在:http://bolg.malu.me/html/2011/1273.html