索引格式sitemap.xml生成类 持续写入 批量写入 保存更新数据



/**`这里写代码片`
 *  Author: 老家的回忆
    Time : 2018.05.26
    Discription: 主要应用网站优化,此版本课兼容最大承受写入量为49990*1000;至于为什么百度站长平台有说!
    偶也是灰灰,望有大神一起学习探讨!qq:740453714
 */
class sitemap{

    private $resconns;//定义写入url的结果集
    private $sitemappath ="../sitemap.xml";//定义索引写入路径
    public $arrmaxurl;//将写入url的每个栏目最大值存入数据库 类型数组 包含各存储表的键名

    public function wsuoyinxml($sitemappath,$resconns,$arrmaxurl){
            if(file_exists($sitemappath)){
            $ressuoyin = file_get_contents($sitemappath);
            return existsloc($ressuoyin,$resconns,$arrmaxurl);
        }
    }

    // 索引格式参考
    /**
     * 
        xml version="1.0" encoding="UTF-8"?>
        
        
        ...
        
        
        https://www.1586f.com/xml/site1.xml
        2018-05-26 12:04:00
        
        

     */

    /**
     * xmlurl文件格式参考
        xml version="1.0" encoding="UTF-8"?>
        
        
        https://www.1586f.com
        1.0
        2018-05-20
        always
        
        


     */

    /**
     * 说明 PHP_EOL,表示换行符自动兼容moc linux windows
     */

    public function existsloc($ressuoyin,$resconns,$arrmaxurl){
            $strstart = strrpos($ressuoyin, "");
            $strlocend = strrpos($ressuoyin, "");
            $fileurl = substr($ressuoyin,$strlocend+5,$strstart-121);
            $xiegang = "../xml".strrchr($fileurl,"/");
            // echo $xiegang;
            return wsitemapxml($xiegang,$resconns,$arrmaxurl);



    }


    public function wsitemapxml($sitemapurl,$resconns,$arar){
    if(file_exists($sitemapurl)){
        $redfilecon = file_get_contents($sitemapurl);
        $redfileconlen = strlen($redfilecon);
        $deleteurlset = substr($redfilecon, 0,$redfileconlen-9);
        $countloc = substr_count($deleteurlset, "");//获取文件中url数量
        $resconnnum = substr_count($resconns, "");//获取写入结果集的数量
        $loccountnums = $countloc+$resconnnum; // 加入完全写入
//      echo $sitemapurl."
";
// echo $loccountnums."
";
// echo $resconns."
";
// var_dump($arar)."
";
// die; if($loccountnums>49990){ //直接创建新文件写入 $basename = basename($sitemapurl); $xmlfilexuhao = preg_match("[\d*]",$basename);//获取字符成功 // // 写入文件名 $xmlfilexuhaojia = $xmlfilexuhao+1; $newfilename = "../xml/site".$xmlfilexuhaojia.".xml"; fopen($newfilename, "w");//创建文件 fclose($newfilename); if(file_exists($newfilename)){ $newsitejiacon = "".PHP_EOL."".PHP_EOL.$resconns.""; file_put_contents($newfilename,$newsitejiacon); $suoyinfile = "../sitemap.xml"; $suoyinfilecon = file_get_contents($suoyinfile); $suoyinstr = "".PHP_EOL."https://www.1586f.com/xml/site".$xmlfilexuhaojia.".xml".PHP_EOL."".date('Y-m-d H:i:s')."".PHP_EOL."".PHP_EOL.""; $addsitemaploc = str_replace("",$suoyinstr, $suoyinfilecon); file_put_contents($suoyinfile, $addsitemaploc); if(0$newfilename
), "")){ /** * 插入结果sql用来记录你的写入记录最大值, */ mysql_query($sqlinterset); if(mysql_affected_rows()>0){ echo "创建路径为".$newfilename."的文件! xml表记录更新成功"."
"
."sitemap.xml更新成功!"; }else{ echo "创建路径为".$newfilename."的文件! xml表记录插入失败"."
"
."sitemap.xml更新成功!"; } } } }else{ // //在49000之上且小于49900可以一次性写入 $urlleftcount = substr_count($deleteurlset,""); $urlrightcount = substr_count($deleteurlset, ""); if(isset($urlleftcount) && isset($urlrightcount) && $urlleftcount==$urlrightcount){ file_put_contents($sitemapurl, $deleteurlset.$resconns."");//文件小直接写入 if($countloc$sitemapurl
), "")){ /** * 插入结果sql用来记录你的写入记录最大值, */ $sqlinterset = "Insert into zzcms_writsitemap(zx,main,pp,tv,vip,wsdk,wssp,wsyx,zh,zhcompany,zhzixun,dateday) values('".$arar["zxmaxid"]."','".$arar["zsmaxid"]."','".$arar["ppmaxid"]."','".$arar["tvmaxid"]."','".$arar["vipmaxid"]."','".$arar["wsdkmaxid"]."','".$arar["wsspmaxid"]."','".$arar["wsyxmaxid"]."','".$arar["zhmaxid"]."','".$arar["zhcompanymaxid"]."','".$arar["zhzixunmaxid"]."','".date('Y-m-d H:i:s')."')"; mysql_query($sqlinterset); if(mysql_affected_rows()>0){ echo "xml表记录更新成功"."
"
."sitemap.xml更新成功!"; }else{ echo "表记录插入失败"."
"
."sitemap.xml更新成功!"; } } } } } } }

你可能感兴趣的:(seo,php)