最新公告
  • 欢迎您光临站长源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 帝国利用PHP生成sitemap文件

    正文概述 管理员   2024-04-11   146

    这个代码可以拿去直接用,但是有一点需要注意,如果网站文 章太多了,那就需要修改部分代码,百度好像规定了sitemap里面的链接条数的。太多了不太友好

    sitemap代码

    <?php  
    /*引用文件*/  
    require('e/class/connect.php');
    require('e/class/db_sq l.php');
    require('e/data/dbcache/class.php');
    /*建立数据库链接 与 实例化类*/  
    $link = db_connect();  
    $empire=new mysq lquery();  
    //header("Content-type:application/xml");
    header("Content-type: text/html; charset=utf-8");
    $operation = $_GET['operation'];
    $current_url = explode('/',$_SERVER['PHP_SELF']);  
    $current_script_name = end($current_url);  
    if($operation && $operation == "makexml")
    {
     $xml = generate_sitemp_xml();
     $result = save_xml('sitemap.xml',$xml);
     if($result)
     {
      echo '生成成功,<a href="sitemap.xml">点此查看</a>'; 
     }
     else
     {
      echo '生成失败,<a href="'.$current_script_name.'">在来一次</a>!'; 
     }
    }
    else
    {
     echo '欢迎使用红穆Sitemap生成工具,请<a href="'.$current_script_name.'?operation=makexml">点此生成</a>!'; 
    }
    
    
    //保存到文件
    function save_xml($filename, $text) {
     if (!$filename || !$text)
      return false;
     
       @chmod($filename,0777);
     if ($fp = fopen($filename, "w")) {
      if (@fwrite($fp, $text)) {
       fclose($fp);
       return true;
      } else {
       fclose($fp);
       return false;
      } 
     } 
        return false;
    } 
    //生成Sitemap XML数据
    function generate_sitemp_xml()
    {
     global $dbtbpre,$empire;
     
     $xml = '';
     $xml .= '<?xml version="1.0" encoding="utf-8"?>' .PHP_EOL;
     $xml .= '<urlset>' .PHP_EOL;
     $xml .= generate_home_xml();//首页
     $xml .= generate_class_xml();//栏目
     
     $query="select * from {$dbtbpre}ecms_news order by id desc limit 10000";
     $sq l=$empire->query($query);
     while($r=$empire->fetch($sq l))
     {
      $titleurl=sys_ReturnBqTitleLink($r);
      
      $xml .= '  <url>' .PHP_EOL;
      $xml .= '    <loc>'.$titleurl.'</loc>' .PHP_EOL;
      $xml .= '    <lastmod>'.strftime('%Y-%m-%d',$r['newstime']).'</lastmod>' .PHP_EOL;
      $xml .= '    <changefreq>daily</changefreq>' .PHP_EOL;
      $xml .= '    <priority>0.8</priority>' .PHP_EOL;
      $xml .= '  </url>' .PHP_EOL;
      
     }
     $xml .= '</urlset>' .PHP_EOL; 
     
     return $xml;
    }
    //生成栏目链接XML数据
    function generate_class_xml()
    {
     global $dbtbpre,$empire,$class_r;
     $xml = '';
      
     $sq l=$empire->query("SELECT * FROM {$dbtbpre}enewsclass WHERE islast=1");
     while($r=$empire->fetch($sq l))
     {
      $infor=$empire->fetch1("SELECT newstime FROM {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]." WHERE classid='$r[classid]' ORDER BY newstime DESC LIMIT 1");
      $class_url=sys_ReturnBqClassname($r, 9);
      
      $xml .= '  <url>' .PHP_EOL;
      $xml .= '    <loc>'.$class_url.'</loc>' .PHP_EOL;
      $xml .= '    <lastmod>'.strftime('%Y-%m-%d',time()).'</lastmod>' .PHP_EOL;
      $xml .= '    <changefreq>daily</changefreq>' .PHP_EOL;
      $xml .= '    <priority>0.8</priority>' .PHP_EOL;
      $xml .= '  </url>' .PHP_EOL;
      
     }
     
     return $xml;
    }
    //生成栏目链接XML数据
    function generate_home_xml()
    {
    global $public_r; 
     $xml = '';
     $xml .= '  <url>' .PHP_EOL;
     $xml .= '    <loc>'.$public_r[newsurl].'</loc>' .PHP_EOL;
     $xml .= '    <lastmod>'.strftime('%Y-%m-%d',time()).'</lastmod>' .PHP_EOL;
     $xml .= '    <changefreq>daily</changefreq>' .PHP_EOL;
     $xml .= '    <priority>0.8</priority>' .PHP_EOL;
     $xml .= '  </url>' .PHP_EOL;
     
     return $xml;
    }
    /*关闭数据库连接 与 释放类*/  
    db_close();  
    $empire=null;
    ?>


    站长源码网 » 帝国利用PHP生成sitemap文件

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    支付宝支付
    微信支付
    余额支付
    ×
    微信扫码支付 0 元