php中的关于xml的使用(SEO)

关于xml使用,这个地方是为了SEO收录写的两个函数,仅供参考,欢迎交流,有问题欢迎提问,具体的函数可以查文档。

function edit_xml_file($xml_file_path,$datas,$is_index = false,$is_compress = true){
     $doc = new DomDocument(‘1.0‘, ‘utf-8‘);
     $doc->formatOutput = true;
     $flag = false;
     if( [email protected]_exists($xml_file_path) || !$doc->load($xml_file_path)) {
        $flag = create_xml_file($xml_file_path,$datas,$is_index,$is_compress);
         return $flag;
     }
    //读取文件数据
    $xmldata = simplexml_load_file($xml_file_path);
    $newxmldata = array();
    $xmL_url = array();
    foreach ($xmldata as $key=>$obj){
         $obj = (array) $obj;
         if(isset($obj[‘lastmod‘])){
             $obj[‘lastmod‘] = date(‘c‘,time());
         }
         $xmL_url[] = $obj[‘loc‘];
         $newxmldata[][$key] = $obj;
    }
    //将新添加的数据放在一起
    foreach ($datas as $data){
        if(!in_array($data[$key][‘loc‘], $xmL_url)){
            $newxmldata[] = $data;
        }
    }

    //根据新数据重新更新创建文件
    if(!empty($newxmldata) && unlink($xml_file_path)){
        $flag = create_xml_file($xml_file_path,$newxmldata,$is_index,$is_compress);
    }
    unset($datas);
    return $flag;
}

/** xml,追加数据
 * @param xml_file_path 文件路径,$data 数据,$is_index 为了区分是地图文件还是地图索引,默认是地图文件
 * @author zdj
 * @date 2015-01-23
 */
function add_data_xml_file($xml_file_path,$datas,$is_index = false,$is_compress = true){
    $doc = new DomDocument(‘1.0‘, ‘utf-8‘);
    $doc->formatOutput = true;
    $flag = false;
    if( [email protected]_exists($xml_file_path) || !$doc->load($xml_file_path)) {
        $flag = create_xml_file($xml_file_path,$datas,$is_index,$is_compress);
        return $flag;
    }
    $root = $doc->documentElement;
    foreach ($datas as $data){
        foreach ($data as $key=>$obj){
            $key_dom = $doc->createElement($key);
            foreach ($obj as $attribute =>$attribute_value){
                $attribute_dom = $doc->createElement($attribute);
                $attribute_dom_value = $doc->createTextNode($attribute_value);
                $attribute_dom->appendChild($attribute_dom_value);
                $key_dom->appendChild($attribute_dom);
            }
            $root->appendChild($key_dom);
        }
    }
    $doc->appendChild($root);
    $doc->save($xml_file_path);
    //创建压缩的文件
    $xml_gz_file_path = $xml_file_path.‘.gz‘;
    if($is_compress){
        $fp = gzopen ($xml_gz_file_path, ‘w9‘);
        gzwrite ($fp, $doc->saveXML());
        gzclose($fp);
    }
    //给文件赋予权限//给文件赋予权限
    if(file_exists($xml_file_path)){
        chmod($xml_file_path, 0744);
    }
    if(file_exists($xml_gz_file_path)){
        chmod($xml_gz_file_path, 0744);
    }
    unset($datas);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-01 11:51:18

php中的关于xml的使用(SEO)的相关文章

myeclipse中配置spring xml自动提示

这是一篇分享技巧的文章:myeclipse中配置spring xml自动提示. ① window -> preferences -> MyEclipse -> Files and Editors -> XML -> XML Catalog ② 选择User Specified Entries,点击add按钮弹出一个选框,填入以下三项 i. Location: D:\baiduyun\Spring\spring_doc\soft\spring-framework-2.5.6\d

在.net中序列化读写xml方法的总结

在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些

Spring中加载xml配置文件的六种方式

因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装入系统,这就需要利用Spring去动态加载某一位置下的配置文件,所以就总结了下Spring中加载xml配置文件的方式,我总结的有6种, xml是最常见的spring 应用系统配置源.Spring中的几种容器都支持使用xml装配bean,包括: XmlBeanFactory,ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,XmlWebApplicati

android开发中eclipse里xml开发的自动提示和使用帮助快捷键提示

Eclipse Android 代码自动提示功能 Eclipse for android 设置代码提示功能 打 开 Eclipse 依次选择 Window > Preferences > Java > Editor - Content Assist > Auto activation triggers for Java ,设置框中默认是一个点, .abcdefghijklmnopqrstuvwxyz(, 打 开 Eclipse 依次选择 Window > Preference

Android中View自定义XML属性详解以及R.attr与R.styleable的区别

为View添加自定义XML属性 Android中的各种Widget都提供了很多XML属性,我们可以利用这些XML属性在layout文件中为Widget的属性赋值. 如下所示: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> 我们可以通过TextView所提供

【转载】Spring中的applicationContext.xml与SpringMVC的xxx-servlet.xml的区别

一直搞不明白两者的区别. 如果使用了SpringMVC,事实上,bean的配置完全可以在xxx-servlet.xml中进行配置.为什么需要applicationContext.xml?一定必须? 一. 因为直接使用了SpringMVC,所以之前一直不明白xxx-servlet.xml和applicationContext.xml是如何区别的,其实如果直接使用SpringMVC是可以不添加applicationContext.xml文件的. 使用applicationContext.xml文件时

织梦dedecms中html和xml格式的网站地图sitemap制作方法

sitemap是网站上各网页的列表.创建并提交sitemap有助于百度(Google)发现并了解您网站上的所有网页,包括百度通过传统抓取方式可能找不到的网页.还可以使用sitemap提供有关你网站的其他信息,如上次更新日期.sitemap文件的更新频率等,供百度 (Google)spider参考. 百度(Google)对已提交的数据,不保证一定会抓取及索引所有网址.但是,百度(Google)会使用sitemap中的数据来了解网站的结构等信息,这样可以帮助百度改进抓取策略,并在日后能更好地对网站进

[工具-004]如何从apk中提取AndroidManifest.xml并提取相应信息

跟上一篇类似,我们也需要对APK的一些诸如umengkey,ADkey,TalkingData进行验证,那么我们同样需要解压apk文件,然后提取其中的AndroidManifest.xml.然后解析xml对内容进行分析对比. 1.解压apk文件 if (Path.GetExtension(filePath).Equals(".apk")) { // 获取应用名称 String appName = Path.GetFileNameWithoutExtension(filePath); /

Android中写入读取XML

获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是结尾,并通过一些获取属性的方法来遍历XML文件,从而访问XML文件的内容,下面是一个访问XML文件内容的例子,并将内容更显示在一个TextView上 数据写入xml: ReadXMLTest.java [java] view plaincopy //xml数据生成 private String Wr

C#_在.net中序列化读写xml方法的总结

阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些数据,或者是一些配置参数. 使用C#,我