<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP生成SiteMap文件代碼的方法

    時間:2025-03-01 02:50:55 php語言 我要投稿
    • 相關推薦

    PHP生成SiteMap文件代碼的方法

      分享一例php生成sitemap地圖文件的代碼,用于生成google sitemap地圖,有需要的朋友參考學習下。

      例子:

      復制代碼 代碼示例:

      <?php

      /**

      * 生成sitemap文件

      * 平常在用的一段代碼,分享給大家

      * edit: www.jbxue.com

      */

      require_once('conn.php');

      $doc = new DOMDocument('1.0', 'utf-8');  // 聲明版本和編碼

      $doc -> formatOutput = true;  //格式XML輸出

      $sql="select mid from dede_member_company";

      $query=mysql_query($sql);

      $count=mysql_num_rows($query);

      $pg=intval($count/3000);

      if($count%3000)

      $pg++;

      $page=isset($_GET['page'])?$_GET['page']:1;

      $getpageinfo=page($page,$count,3000);

      $sql="SELECT `mid`,`uptime`,`html_path` FROM `dede_member_company` order by `mid`  $getpageinfo[sqllimit]";

      $query=mysql_query($sql);

      $urlset    = $doc -> createElement('urlset');

      $xmlns    = $doc -> createAttribute('xmlns');

      $xmlnsvalue  = $doc -> createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9");

      $xmlnsxsi    = $doc -> createAttribute('xmlns:xsi');

      $xmlnsxsivalue  = $doc -> createTextNode("http://www.w3.org/2001/XMLSchema-instance");

      $schemaLocation    = $doc -> createAttribute('xsi:schemaLocation');

      $schemaLocationvalue  = $doc -> createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd");

      $xmlns -> appendChild($xmlnsvalue);

      $xmlnsxsi -> appendChild($xmlnsxsivalue);

      $schemaLocation -> appendChild($schemaLocationvalue);

      $urlset       -> appendChild($xmlns);

      $urlset       -> appendChild($schemaLocation);

      $urlset       -> appendChild($xmlnsxsi);

      while($row=mysql_fetch_array($query)){

      $url    = $doc -> createElement('url');    //創建一個標簽

      $loc    = $doc -> createElement('loc');    //創建一個標簽

      $id    = $doc -> createAttribute('id');      //創建一個屬性

      $newsid  = $doc -> createTextNode($row[mid]);        //設置屬性內容

      $newsco = $doc -> createTextNode($row[html_path]);      //設置標簽內容

      $lastmod    = $doc -> createElement('lastmod');

      $modtime  = $doc -> createTextNode(date('c',$row[uptime]));

      $changefreq    = $doc -> createElement('changefreq');

      $freqtype  = $doc -> createTextNode('daily');

      $priority   = $doc -> createElement('priority');

      $prival  = $doc -> createTextNode('0.5');

      $id        -> appendChild($newsid);    //繼承屬性

      $loc    -> appendChild($id);  //繼承屬性內容

      $loc    -> appendChild($newsco);    //繼承標簽內容      //繼承子類

      $lastmod ->appendChild($modtime);

      $changefreq ->appendChild($freqtype);

      $priority ->appendChild($prival);

      $url    -> appendChild($loc);

      $url    -> appendChild($lastmod);

      $url    -> appendChild($changefreq);

      $url    -> appendChild($priority);

      $urlset    -> appendChild($url);

      }

      $doc    -> appendChild($urlset);

      $doc    -> save("../map/sitemap_".$page.".xml");

      //=================================

      if($page=="1"){

      $main_sitemap = new DOMDocument('1.0', 'utf-8');  // 聲明版本和編碼

      $main_sitemap -> formatOutput = true;  //格式XML輸出

      $sitemapindex    = $main_sitemap -> createElement('sitemapindex');

      $xmlns    = $main_sitemap -> createAttribute('xmlns');

      $xmlnsvalue  = $main_sitemap -> createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9");

      $sitemap    = $main_sitemap -> createElement('sitemap');    //創建一個標簽

      $loc    = $main_sitemap -> createElement('loc');    //創建一個標簽

      $id    = $main_sitemap -> createAttribute('id');      //創建一個屬性

      $newsid  = $main_sitemap -> createTextNode($page);        //設置屬性內容

      $newsco = $main_sitemap -> createTextNode("http://youdomain/map/sitemap_".$page.".xml");      //設置標簽內容

      $xmlns -> appendChild($xmlnsvalue);

      $sitemapindex        -> appendChild($xmlns);

      $id        -> appendChild($newsid);    //繼承屬性

      $loc    -> appendChild($id);  //繼承屬性內容

      $loc    -> appendChild($newsco);    //繼承標簽內容

      $sitemap    -> appendChild($loc);        //繼承子類

      $sitemapindex    -> appendChild($sitemap);

      $main_sitemap   -> appendChild($sitemapindex);

      $main_sitemap    -> save("../sitemap.xml");

      }else{

      $main_sitemap = new DOMDocument('1.0', 'utf-8');  // 聲明版本和編碼

      $main_sitemap->preserveWhiteSpace = false;

      $main_sitemap -> formatOutput = true;  //格式XML輸出

      $main_sitemap->load("../sitemap.xml");

      $notes = $main_sitemap->documentElement;

      $sitemap    = $main_sitemap -> createElement('sitemap');    //創建一個標簽

      $loc    = $main_sitemap -> createElement('loc');    //創建一個標簽

      $id    = $main_sitemap -> createAttribute('id');      //創建一個屬性

      $newsid  = $main_sitemap -> createTextNode($page);        //設置屬性內容

      $newsco = $main_sitemap -> createTextNode("http://youdomain/map/sitemap_".$page.".xml");      //設置標簽內容

      $id        -> appendChild($newsid);    //繼承屬性

      $loc    -> appendChild($id);  //繼承屬性內容

      $loc    -> appendChild($newsco);    //繼承標簽內容

      $sitemap    -> appendChild($loc);        //繼承子類

      $notes    -> appendChild($sitemap);

      $main_sitemap    -> appendChild($notes);

      $main_sitemap    -> save("../sitemap.xml");

      }

      //

      if($page<$pg){

      echo "sitemap_".$page."生成完成,正進行下一個生成";

      $page++;

      echo "<script>location.href='?page=".$page."';</script>";

      }else{

      echo "生成完成!";

      exit();

      }

      function page($page,$total,$pagesize=10,$pagelen=7){

      $url=$_SERVER["REQUEST_URI"];

      $parse_url=parse_url($url);

      $url_path=$parse_url[path];

      $url_query=$parse_url[query];

      $page=$_GET[page];

      if($url_query){

      $url_query=ereg_replace("(^|&)page=$page","",$url_query);

      $url=str_replace($parse_url["query"],$url_query,$url);

      if($url_query) $url.="&page"; else $url.="page";

      }else {

      $url.="?page";

      }

      $phpfile=$url;

      $pagecode = '';//定義變量,存放分頁生成的HTML

      $page = intval($page);//避免非數字頁碼

      $total = intval($total);//保證總記錄數值類型正確

      if(!$total) return array();//總記錄數為零返回空數組

      $pages = ceil($total/$pagesize);//計算總分頁

      //處理頁碼合法性

      if($page<1) $page = 1;

      if($page>$pages) $page = $pages;

      //計算查詢偏移量

      $offset = $pagesize*($page-1);

      //頁碼范圍計算

      $init = 1;//起始頁碼數

      $max = $pages;//結束頁碼數

      $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//頁碼個數

      $pageoffset = ($pagelen-1)/2;//頁碼個數左右偏移量

      //生成html

      $pagecode='<p class="page">';

      $pagecode.="<span>$page/$pages</span>";//第幾頁,共幾頁

      //如果是第一頁,則不顯示第一頁和上一頁的連接

      if($page!=1){

      $pagecode.="<a href=\"{$phpfile}=1\">&lt;&lt;</a>";//第一頁

      $pagecode.="<a href=\"{$phpfile}=".($page-1)."\">&lt;</a>";//上一頁

      }

      //分頁數大于頁碼個數時可以偏移

      if($pages>$pagelen){

      //如果當前頁小于等于左偏移

      if($page<=$pageoffset){

      $init=1;

      $max = $pagelen;

      }else{//如果當前頁大于左偏移

      //如果當前頁碼右偏移超出最大分頁數

      if($page+$pageoffset>=$pages+1){

      $init = $pages-$pagelen+1;

      }else{

      //左右偏移都存在時的計算

      $init = $page-$pageoffset;

      $max = $page+$pageoffset;

      }

      }

      }

      //生成html

      for($i=$init;$i<=$max;$i++){

      if($i==$page){

      $pagecode.='<span>'.$i.'</span>';

      } else {

      $pagecode.="<a href=\"{$phpfile}={$i}\">$i</a>";

      }

      }

      if($page!=$pages){

      $pagecode.="<a href=\"{$phpfile}=".($page+1)."\">&gt;</a>";//下一頁

      $pagecode.="<a href=\"{$phpfile}={$pages}\">&gt;&gt;</a>";//最后一頁

      }

      $pagecode.='</p>';

      return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);

      }

      ?>

    【PHP生成SiteMap文件代碼的方法】相關文章:

    PHP生成SiteMap文件的代碼09-27

    php sitemap文件生成器代碼07-11

    php自動生成sitemap地圖代碼10-21

    php自動生成sitemap地圖的代碼10-07

    php自動生成sitemap地圖的代碼07-31

    PHP中BB生成sitemap地圖文件的方法11-06

    php生成sitemap.xml的實例代碼06-02

    PHPBB生成sitemap地圖文件的方法10-15

    php動態生成JavaScript代碼10-03

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人