生產Google Sitemap XML檔案的PHP代碼

來源:互聯網
上載者:User

php如何產生Google Sitemap XML檔案:

<?php header('Content-type: application/xml; charset="GB2312"',true); $timezone    = "Asia/Shanghai";date_default_timezone_set($timezone);$website = "http://www.yipiantian.cn"; /* change this */ $page_root = "/usr/local/psa/home/vhosts/subdomains/my/httpdocs"; /* change this */ /* maybe change this: */ $changefreq = "daily"; //"always", "hourly", "daily", "weekly", "monthly", "yearly" and "never". $priority = 0.5; /* this sets the last modification date of all pages to the current date */ $last_modification = date("Y-m-d H:i:s"); /* list of allowed directories */ $allow_dir[] = "about"; $allow_dir[] = "help"; $allow_dir[] = "case"; $allow_dir[] = "E-Marketing"; /* list of disallowed directories */ $disallow_dir[] = "system"; $disallow_dir[] = "ads"; $disallow_dir[] = "api"; $disallow_dir[] = "ask"; $disallow_dir[] = "category"; $disallow_dir[] = "comment"; $disallow_dir[] = "corpandresize"; $disallow_dir[] = "css"; /* list of disallowed file types */ $disallow_file[] = ".inc"; $disallow_file[] = ".old"; $disallow_file[] = ".save"; $disallow_file[] = ".txt"; $disallow_file[] = ".xml"; $disallow_file[] = ".js"; $disallow_file[] = "~"; $disallow_file[] = ".LCK"; $disallow_file[] = ".zip"; $disallow_file[] = ".ZIP"; $disallow_file[] = ".CSV"; $disallow_file[] = ".csv"; $disallow_file[] = ".css"; $disallow_file[] = ".class"; $disallow_file[] = ".jar"; $disallow_file[] = ".mno"; $disallow_file[] = ".bak"; $disallow_file[] = ".lck"; $disallow_file[] = ".BAK"; $disallow_file[] = ".php"; $disallow_file[] = ".sql"; /* simple compare function: equals */ function ar_contains($key, $array) { foreach ($array as $val) { if ($key == $val) { return true; } } return false; } /* better compare function: contains */ function fl_contains($key, $array) { foreach ($array as $val) { $pos = strpos($key, $val); if ($pos === FALSE) continue; return true; } return false; } /* this function changes a substring($old_offset) of each array element to $offset */ function changeOffset($array, $old_offset, $offset) { $res = array(); foreach ($array as $val) { $res[] = str_replace($old_offset, $offset, $val); } return $res; } /* this walks recursivly through all directories starting at page_root and adds all files that fits the filter criterias */ // taken from Lasse Dalegaard, http://php.net/opendir function getFiles($directory, $directory_orig = "", $directory_offset="") { global $disallow_dir, $disallow_file, $allow_dir; if ($directory_orig == "") $directory_orig = $directory; if($dir = opendir($directory)) { // Create an array for all files found $tmp = Array(); // Add the files while($file = readdir($dir)) { // Make sure the file exists if($file != "." && $file != ".." && $file[0] != '.' ) { // If it's a directiry, list all files within it //echo "point1<br>"; if(is_dir($directory . "/" . $file)) { //echo "point2<br>"; $disallowed_abs = fl_contains($directory."/".$file, $disallow_dir); // handle directories with pathes $disallowed = ar_contains($file, $disallow_dir); // handle directories only without pathes $allowed_abs = fl_contains($directory."/".$file, $allow_dir); $allowed = ar_contains($file, $allow_dir); if ($disallowed || $disallowed_abs) continue; if ($allowed_abs || $allowed){ $tmp2 = changeOffset(getFiles($directory . "/" . $file, $directory_orig, $directory_offset), $directory_orig, $directory_offset); if(is_array($tmp2)) { $tmp = array_merge($tmp, $tmp2); } } } else { // files if (fl_contains($file, $disallow_file)) continue; array_push($tmp, str_replace($directory_orig, $directory_offset, $directory."/".$file)); } } } // Finish off the function closedir($dir); return $tmp; } } $a = getFiles($page_root); echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <? foreach ($a as $file) { ?> <url> <loc><? echo utf8_encode($website.$file); ?></loc> <lastmod><? echo utf8_encode(date("Y-m-d"));?></lastmod> <changefreq><? echo utf8_encode($changefreq); ?></changefreq> <priority><? echo utf8_encode($priority); ?></priority> </url> <? } ?> </urlset> 

參數說明: 
$website--你的網域名稱 
$page_root--你的網站的絕對路徑 
$changefreq--更新時間單位 "always"(始終), "hourly"(小時), "daily"(天), "weekly"(星期), "monthly"(月), "yearly" "never"(從不) 
$priority--更新頻率 
$allow_dir--允許清單的目錄 
$disallow_dir--禁止列表的目錄 
$disallow_file--禁止列表的檔案類型 

製作過程說明: 

將以上代碼複製到本地存為sitemap.asp或sitemap.php,上傳到你的伺服器網站的根目錄下,運行一下就可以在你指定的目錄中(建議最好是指定為根目錄)自動產生一個sitemap.xml檔案了。最後進入google提交頁面:https://www.google.com/webmasters/sitemaps/login,有gmail的可以用gmail直接登入。登入後把產生的xml檔案地址按步驟提交就可以了。註:你的網站如果增加了新的頁面,可以在增加完後再運行一下sitemap.asp或sitemap.php,並再重新提交一下sitemap.xml檔案,這樣就可以保證sitemap.xml檔案的不斷更新了! 




=================================================================================================

<?PHP    header('Content-type: application/xml; charset="utf-8"'?true);     ?>     <?PHP    $website = "http://www.seosjz.com"; /* change this */    $page_root = "F:\wwwroot\2009sjzseobg\wwwroot"; /* change this */        /* maybe change this: */    $changefreq = "weekly"; //"always"? "hourly"? "daily"? "weekly"? "monthly"? "yearly" and "never".    $priority = 0.8;     /* this sets the last modification date of all pages to the current date */    $last_modification = date("Y-m-d\TH:i:s") . substr(date("O")?0?3) . ":" . substr(date("O")?3);       /* list of allowed directories */    $allow_dir[] = "web";      /* list of disallowed directories */    $disallow_dir[] = "admin";    $disallow_dir[] = "_notes";    $disallow_dir[] = "site"; $disallow_dir[] = "images";$disallow_dir[] = "index_files";$disallow_dir[] = "managerfiles"; $disallow_dir[] = "sitemap";    /* list of disallowed file types */    $disallow_file[] = ".inc";    $disallow_file[] = ".old";    $disallow_file[] = ".save";    $disallow_file[] = ".txt";    $disallow_file[] = ".js";    $disallow_file[] = "~";    $disallow_file[] = ".LCK";    $disallow_file[] = ".zip";    $disallow_file[] = ".ZIP";    $disallow_file[] = ".CSV";    $disallow_file[] = ".csv";    $disallow_file[] = ".css";    $disallow_file[] = ".class";    $disallow_file[] = ".jar";    $disallow_file[] = ".mno";    $disallow_file[] = ".bak";    $disallow_file[] = ".lck";    $disallow_file[] = ".BAK"; $disallow_file[] = ".htm";$disallow_file[] = ".php";   $disallow_file[] = ".xml";   /* simple compare function: equals */     function ar_contains($key? $array) {    foreach ($array as $val) {    if ($key == $val) {    return true;    }    }    return false;    }       /* better compare function: contains */    function fl_contains($key? $array) {    foreach ($array as $val) {    $pos = strpos($key? $val);    if ($pos === FALSE) continue;    return true;    }      return false;    }      /* this function changes a substring($old_offset) of each array element to $offset */    function changeOffset($array? $old_offset? $offset) {    $res = array();    foreach ($array as $val) {    $res[] = str_replace($old_offset? $offset? $val);    }    return $res;    }     /* this walks recursivly through all directories starting at page_root and    adds all files that fits the filter criterias */     // taken from Lasse Dalegaard? http://PHP.net/opendir     function getFiles($directory? $directory_orig = ""? $directory_offset="") {    global $disallow_dir? $disallow_file? $allow_dir;      if ($directory_orig == "") $directory_orig = $directory;      if($dir = opendir($directory)) {    // Create an array for all files found    $tmp = Array();       // Add the files    while($file = readdir($dir)) {    // Make sure the file exists    if($file != "." && $file != ".." && $file[0] != '.' ) {     // If it's a directiry? list all files within it     //echo "point1<br>";    if(is_dir($directory . "/" . $file)) {     //echo "point2<br>";    $disallowed_abs = fl_contains($directory."/".$file? $disallow_dir); // handle directories with pathes    $disallowed = ar_contains($file? $disallow_dir); // handle directories only without pathes    $allowed_abs = fl_contains($directory."/".$file? $allow_dir);    $allowed = ar_contains($file? $allow_dir);    if ($disallowed || $disallowed_abs) continue;    if ($allowed_abs || $allowed){    $tmp2 = changeOffset(getFiles($directory . "/" . $file? $directory_orig? $directory_offset)? $directory_orig? $directory_offset);    if(is_array($tmp2)) {    $tmp = array_merge($tmp? $tmp2);    }    }    } else { // files    if (fl_contains($file? $disallow_file)) continue;array_push($tmp? str_replace($directory_orig? $directory_offset? $directory."/".$file));    }    }    }       // Finish off the function    closedir($dir);     return $tmp;    }     }      $a = getFiles($page_root);    echo '<?xml version="1.0" encoding="UTF-8"?>';    ?>   <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">    <?php    foreach ($a as $file) {    ?>    <url>    <loc><?php echo utf8_encode($website.$file); ?></loc>    <lastmod><?php echo utf8_encode(date("Y-m-d\TH:i:s"? filectime($page_root.$file)). substr(date("O")?0?3) . ":" . substr(date("O")?3));?></lastmod>    <changefreq><?php echo utf8_encode($changefreq); ?></changefreq>    <priority><?php echo utf8_encode($priority); ?></priority>    </url>    <?php    }    ?>    </urlset> 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.