2010-12-15 4 views
1

Есть ли файлы Sitemap, которые я могу использовать для автоматического создания ссылок для моего сайта и автоматического обновления для поисковых систем ежедневно?PHP и XML - карта сайта для моего сайта

Я использую PHP & MySQL.

+0

Вы ищете инструмент для предварительной сборки? Это довольно жесткий заказ. Любой инструмент не будет знать, какие страницы у вас на вашем веб-сайте, и должны ли они быть видимыми. Вы хотите создать XML-карту? – Jonah 2010-12-15 20:57:58

ответ

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

XML sitmap builder, ползает все, что вы страниц и индексов, которые вы будете подключить до 5-го уровня в дереве бесплатно

0

Это не отвечает на ваш вопрос напрямую, но если вы используете Joomla, есть плагины, которые делают это автоматически. Тот, который я использую, joomap, генерирует как карту сайта html для использования на веб-сайте, так и карту xml. Затем вы можете войти в Google и зарегистрировать свой XML-файл. Каждый раз, когда на карту сайта попадают или индексы google, он автоматически создает новый html или xml по мере необходимости. Круто!

Если ваш сайт имеет более чем несколько страниц, стоит посмотреть на CMS, чтобы управлять такими вещами автоматически.

Смежные вопросы