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>