代码片段:PHP向xml文件中追加节点

一个项目中需要为网站生成站点地图,用到了XML文件。但是考虑到tp-admin是波波基于think-Admin开发的后台开发框架,因此xml文件的节点追加应该更灵活,故而给tp-admin增加了一个xml文件节点追加函数。需要的朋友可以直接复制。

XML节点追加函数:

  1. /*
  2.  * Xml文件增加节点
  3.  * @param $filename string 文件路径
  4.  * @param $data array 追加数组
  5.  * @param $nodename string 节点名称
  6.  * @return boole
  7.  */
  8. function addXmlNode($filename,$data,$nodename){
  9.     if(is_array($data) && !emptyempty($data) && is_file($filename) && !is_string($nodename)){
  10.         $contents = file_get_contents($filename);
  11.         $xml = @simplexml_load_string($contents);
  12.         foreach($data as $key=>$value){
  13.             foreach($data[$keyas $k=>$v){
  14.                 $item = $xml->addChild($nodename);
  15.                 $item->addChild($k,$v);
  16.             }
  17.         }
  18.         $res = file_put_contents($filename,$xml->asXML());
  19.         return  $res !== false?true:$res;
  20.     }else{
  21.         throw new \think\Exception('Incorrect parameters');
  22.     }

函数代码很简单。值得注意的是$filename传入的是文件的完整路径,可不能只传入文件名;其次是$data是一个二维数组,即使你需要追加的节点只有一条数据,也必须传入二维数组。$nodename是增加的节点名称。比如sitemap中我们经常需要追加的是“url”节点,这里参数就可以传入节点名称。

很简单,使用示例就不放了。下班!

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!