“自从联盟和部落并肩作战,共同抵抗燃烧军团的入侵已经过去了四年。”…错了,自从上次利用rm -rf
清洗掉:“虾比比”站点的数据,已经过去了两年。曾经利用php获取远程文件并保存到本地的知识如同部落和联盟之间脆弱的协议,早已荡然无存。倒是反复出错调试的记忆一直记忆犹新,导致博主很长一段时间,不愿再去涉及这个领域。
这几天想实现一个可以自动更新的页面,远程获取到Nhk的广播音频的地址,然后保存到本地,虽然存在跨域的问题,但Nhk贴心的提供了一个可供访问的xml文件,只需要访问该文件,分析一下xml数据,就可以获取到正确的地址了。
curl部分
利用curl可以实现文件的远程获取,curl可以设置很多的参数,以对应不同的应用场景,所幸这里直接使用就好;
$url = '远程xml地址';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$rs = curl_exec($curl);
curl_close($curl);
file部分
然后可以利用php的file函数将文件保存到本地;
$file = fopen('./NhkBeta.xml','w');
fwrite($file, $rs);
fclose($file);
xml解析
至于xml的解析,php里有现成的模块SimpleXML,输入以下命令就可以以类似数组的操作来轻松提取xml的数据了:
$movies = new SimpleXMLElement($xmlstr);
echo $movies->movie[0]->plot;