2010-12-15 70 views
1

Y a-t-il des sitemaps que je peux utiliser pour générer automatiquement des liens pour mon site et mettre à jour automatiquement tous les jours pour les moteurs de recherche? J'utilise PHP & MySQL.PHP & XML - plan du site pour mon site Web

+0

Êtes-vous à la recherche d'un outil préfabriqué? C'est un ordre assez difficile. N'importe quel type d'outil n'aurait aucun moyen de savoir quelles pages vous avez sur votre site Web, et si elles devraient ou non être visibles. Voulez-vous dire que vous voulez générer un sitemap XML? – Jonah

+0

oui je voudrais générer un sitemap xml. S'il n'y en a pas toutes, je vais poser une autre question sur la façon de créer un sitemaps XML en utilisant PHP et XML – HELP

Répondre

0

J'automatisé ce processus avec mon simple, générateur de sitemap:

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>"; 
    } 
} 

classes connues sont est un hachage global que j'utilise pour l'auto-chargement des classes.

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

Je contacte tous les contrôleurs et je leur demande les liens qu'ils sont capables de gérer. Chaque contrôleur que vous souhaitez inclure dans le plan Sitemap beaucoup ont:

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

Exemple: http://websitecenter.ca/sitemap.xml

0

XML sitmap builder, crawls toutes les pages que vous êtes et vous êtes index lien jusqu'au niveau 5 dans un arbre gratuitement

0

Cela ne répond pas directement à votre question, mais si vous utilisez Joomla, il y a des plugins qui le font automatiquement. Celui que j'utilise, joomap, génère à la fois une carte de site html pour une utilisation sur le site ainsi qu'une carte xml. Vous pouvez ensuite vous connecter à google et enregistrer votre fichier XML. Chaque fois que la carte du site est frappée ou index google, il crée automatiquement un nouveau code HTML ou xml au besoin. Cool!

Si votre site compte plus de quelques pages, cela vaut la peine de consulter un CMS pour gérer ce genre de choses automatiquement.