VIPnytt / SitemapParser: classe d’arbitre de carte XML conforme au protocole Sitemaps.org.
4.9 (98%) 32 votes
 

VIPnytt / SitemapParser: classe d’arbitre de carte XML conforme au protocole Sitemaps.org.

Créer un statut
Qualité du numéro exploratoire
Code climatique
Essai de vaccin
Licence
Packagiste
Rejoignez le chat sur https://gitter.im/VIPnytt/SitemapParser

Une bibliothèque PHP facile à utiliser pour analyser les cartes Sitemaps conformes au protocole Sitemaps.org.

Le protocole Sitemaps.org est la principale norme et est pris en charge par Google, Bing, Yahoo, Ask et bien d’autres.

SensioLabsInsight

Caractéristiques

  • Analyser le noyau
  • Recherche répétée
  • Mettez la corde
  • Chaîne d’agent utilisateur
  • Assistance aux agents

Formats pris en charge

  • XML .xml
  • XML pressé .xml.gz
  • Feuille de règles Robots.txt robots.txt
  • Texte séparé et lisse (désactivé par défaut)

Exigences:

Installation

La bibliothèque est disponible pour l’installation via Composer. Ajoutez simplement ceci au vôtre composer.json fichier:

{
    "require": {
        "vipnytt/sitemapparser": "^1.0"
    }
}

Puis cours composer update.

Pour commencer

Un exemple basique

Renvoie uniquement la liste des URL.

use vipnyttSitemapParser;
use vipnyttSitemapParserExceptionsSitemapParserException;

try {
    $parser = new SitemapParser();
    $parser->parse('https://www.google.com/sitemap.xml');
    foreach ($parser->getURLs() as $url => $tags) {
        echo $url . '<br>';
    }
} catch (SitemapParserException $e) {
    echo $e->getMessage();
}

Il a évolué

Restaure toutes les balises disponibles, pour tous les plans de site et toutes les URL.

use vipnyttSitemapParser;
use vipnyttSitemapParserExceptionsSitemapParserException;

try {
    $parser = new SitemapParser('MyCustomUserAgent');
    $parser->parse('http://php.net/sitemap.xml');
    foreach ($parser->getSitemaps() as $url => $tags) {
        echo 'Sitemap<br>';
        echo 'URL: ' . $url . '<br>';
        echo 'LastMod: ' . $tags['lastmod'] . '<br>';
        echo '<hr>';
    }
    foreach ($parser->getURLs() as $url => $tags) {
        echo 'URL: ' . $url . '<br>';
        echo 'LastMod: ' . $tags['lastmod'] . '<br>';
        echo 'ChangeFreq: ' . $tags['changefreq'] . '<br>';
        echo 'Priority: ' . $tags['priority'] . '<br>';
        echo '<hr>';
    }
} catch (SitemapParserException $e) {
    echo $e->getMessage();
}

Répétition

Parcourir n’importe quel plan de site détecté pendant l’analyse, pour obtenir une liste complète des URL

use vipnyttSitemapParser;
use vipnyttSitemapParserExceptionsSitemapParserException;

try {
    $parser = new SitemapParser('MyCustomUserAgent');
    $parser->parseRecursive('http://www.google.com/robots.txt');
    echo '<h2>Sitemaps</h2>';
    foreach ($parser->getSitemaps() as $url => $tags) {
        echo 'URL: ' . $url . '<br>';
        echo 'LastMod: ' . $tags['lastmod'] . '<br>';
        echo '<hr>';
    }
    echo '<h2>URLs</h2>';
    foreach ($parser->getURLs() as $url => $tags) {
        echo 'URL: ' . $url . '<br>';
        echo 'LastMod: ' . $tags['lastmod'] . '<br>';
        echo 'ChangeFreq: ' . $tags['changefreq'] . '<br>';
        echo 'Priority: ' . $tags['priority'] . '<br>';
        echo '<hr>';
    }
} catch (SitemapParserException $e) {
    echo $e->getMessage();
}

Diviser des chaînes de texte séparées

Remarque: C’est désactivé par défaut pour éviter les faux positifs lors de l’anticipation de XML, mais apporte du texte brut à la place.

Éteindre strict normes, passez simplement cette configuration pour le critère de construction n ° 2: ['strict' => false].

use vipnyttSitemapParser;
use vipnyttSitemapParserExceptionsSitemapParserException;

try {
    $parser = new SitemapParser('MyCustomUserAgent', ['strict' => false]);
    $parser->parse('https://www.xml-sitemaps.com/urllist.txt');
    foreach ($parser->getSitemaps() as $url => $tags) {
            echo $url . '<br>';
    }
    foreach ($parser->getURLs() as $url => $tags) {
            echo $url . '<br>';
    }
} catch (SitemapParserException $e) {
    echo $e->getMessage();
}

Exemples supplémentaires

D’autres exemples sont disponibles dans le répertoire des exemples.

Configuration

Options de configuration disponibles et leurs valeurs par défaut:

$config = [
    'strict' => true, // (bool) Disallow parsing of line-separated plain text
    'guzzle' => [
        // GuzzleHttp request options
        // http://docs.guzzlephp.org/en/latest/request-options.html
    ],
];
$parser = new SitemapParser('MyCustomUserAgent', $config);

Si l’agent utilisateur est également installé à l’aide des options de requête GuzzleHttp, il reçoit la priorité la plus élevée et remplace un autre agent utilisateur.

VIPnytt / SitemapParser: classe d’arbitre de carte XML conforme au protocole Sitemaps.org.
4.9 (98%) 32 votes