一个项目中需要为网站生成站点地图,用到了XML文件。但是考虑到tp-admin是波波基于think-Admin开发的后台开发框架,因此xml文件的节点追加应该更灵活,故而给tp-admin增加了一个xml文件节点追加函数。需要的朋友可以直接复制。
XML节点追加函数:
- /*
- * Xml文件增加节点
- * @param $filename string 文件路径
- * @param $data array 追加数组
- * @param $nodename string 节点名称
- * @return boole
- */
- function addXmlNode($filename,$data,$nodename){
- if(is_array($data) && !emptyempty($data) && is_file($filename) && !is_string($nodename)){
- $contents = file_get_contents($filename);
- $xml = @simplexml_load_string($contents);
- foreach($data as $key=>$value){
- foreach($data[$key] as $k=>$v){
- $item = $xml->addChild($nodename);
- $item->addChild($k,$v);
- }
- }
- $res = file_put_contents($filename,$xml->asXML());
- return $res !== false?true:$res;
- }else{
- throw new \think\Exception('Incorrect parameters');
- }
函数代码很简单。值得注意的是$filename传入的是文件的完整路径,可不能只传入文件名;其次是$data是一个二维数组,即使你需要追加的节点只有一条数据,也必须传入二维数组。$nodename是增加的节点名称。比如sitemap中我们经常需要追加的是“url”节点,这里参数就可以传入节点名称。
很简单,使用示例就不放了。下班!