2010-12-15 38 views
1

是否有任何站點地圖可以用來爲我的網站自動生成鏈接並自動爲搜索引擎自動更新?PHP&XML - 我的網站的網站地圖

我正在使用PHP & MySQL。

+0

您是否在尋找預製工具?這是一個非常艱難的命令。任何類型的工具都無法知道您的網站上有哪些網頁,以及它們是否應該可見。你是說你想要生成一個XML站點地圖嗎? – Jonah 2010-12-15 20:57:58

+0

是的,我想生成一個XML網站地圖。如果沒有所有行,我會問另一個關於如何使用PHP和XML創建XML站點地圖的問題 – HELP 2010-12-15 21:02:17

回答

0

我自動化這個過程,我簡單的站點地圖生成器:

class SiteMap { 

    public static function generate() { 
     global $known_classes; 
     $methodName = "siteMap"; 
     $result = ""; 
     foreach ($known_classes as $file => $path) { 
      if(String::endsWith($file, "Controller.class.php")) { 
       $dotPos = stripos($file, '.'); 
       $className = substr($file, 0, $dotPos); 
       //    echo $className . '<br>'; 

       if(method_exists($className, $methodName)) { 
        $refl = new ReflectionMethod($className, $methodName); 
        $data = $refl->invoke(NULL); // invoke static method with no paramaters 
        //     echo $data; 
        foreach ($data as $dataEl) { 
         $result .= self::add($dataEl); 
        } 
       } 
      } 
     } 

     $header = '<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; 
     $footer = "\r\n</urlset>"; 

     $sitemap = $header . $result . $footer; 

     return $sitemap; 
    } 



    private static function add($data) { 
     $result = "\r\n\t<url>\r\n"; 
     foreach ($data as $key => $value) { 
      if($key == 'loc') { 
       $value = htmlspecialchars($value); 
      } 
      $result .= "\t\t<$key>$value</$key>\r\n"; 
     } 
     return $result . "\t</url>"; 
    } 
} 

已知類是全球性的哈希值,我使用的類自動加載。

'AdminController.class.php' => '/pathto/websitecenter.ca/Classes/Controllers/AdminController.class.php', 

我輪詢每一個控制器並詢問他們能夠處理的鏈接。 要在站點地圖很多,包括每個控制器有:

public static function siteMap() { 
    $pageURL = 'http://' . $_SERVER["SERVER_NAME"]; 
    $data = array(
    array("loc" => $pageURL . "/services"), 
    ); 
    return $data; 
} 

例子:http://websitecenter.ca/sitemap.xml

0

這並不直接回答你的問題,但如果你碰巧使用Joomla,有插件會自動執行此操作。我使用的一個joomap會生成一個用於網站的html網站地圖以及一個xml地圖。然後你可以登錄到谷歌並註冊你的XML文件。每次點擊網站地圖或谷歌索引時,都會根據需要自動創建新的html或xml。涼!

如果您的網站有超過幾頁,那麼值得看看CMS自動管理這樣的事情。