tzfrs/googlesitemapparser

Google Sitemap 是 Ask.com、Google、YAHOO 和 MSN 搜索支持的一种 Sitemap 标准。这个库可以读取这样的 Sitemap,并解析其中的所有 URL。

1.0.9 2016-08-28 13:23 UTC

This package is auto-updated.

Last update: 2024-09-13 02:23:36 UTC


README

一个易于使用的库,用于解析符合 Google 标准的 sitemap

安装

通过 composer 安装

{
    "require": {
        "tzfrs/googlesitemapparser": "1.0.*"
    }
}

运行 composer installcomposer update

入门指南

基本解析

解析服务器上 sitemap.xml 文件的数据。支持 .xml 和文本格式

<?php
require __DIR__ . '/vendor/autoload.php';

use \tzfrs\GoogleSitemapParser;
use \tzfrs\Exceptions\GoogleSitemapParserException;

try {
    $posts = (new GoogleSitemapParser('http://tzfrs.de/sitemap.xml'))->parse();
    foreach ($posts as $post) {
        print $post . '<br>';
    }
} catch (GoogleSitemapParserException $e) {
    print $e->getMessage();
}

从 robots.txt 解析

在 robots.txt 中搜索 Sitemap 条目并解析这些文件。同时下载/提取 gzip 压缩的 sitemap 并搜索它们

<?php
require __DIR__ . '/vendor/autoload.php';

use \tzfrs\GoogleSitemapParser;
use \tzfrs\Exceptions\GoogleSitemapParserException;

try {
    $posts = (new GoogleSitemapParser('http://www.sainsburys.co.uk/robots.txt'))->parseFromRobots();
    foreach ($posts as $post) {
        print $post . '<br>';
    }
} catch (GoogleSitemapParserException $e) {
    print $e->getMessage();
}

在响应中包含 sitemap 条目的优先级

如果您还想获取 sitemap 集合的优先级,请将构造函数的第二个参数设置为 true。如果找不到优先级或在文件中未设置,则返回空字符串。

<?php
require __DIR__ . '/vendor/autoload.php';

use \tzfrs\GoogleSitemapParser;
use \tzfrs\Exceptions\GoogleSitemapParserException;
try {
    $posts = (new GoogleSitemapParser('http://www.sainsburys.co.uk/robots.txt', true))->parseFromRobots();
    foreach ($posts as $post=>$priority) {
        print 'URL: '. $post . '<br>Priority: '. $priority . '<hr>';
    }
} catch (GoogleSitemapParserException $e) {
    print $e->getMessage();
}

解析压缩的 sitemap

如果您有一个指向压缩 sitemap 的 URL,例如 example.com/sitemap.xml.gz,则需要使用此方法

<?php
require __DIR__ . '/vendor/autoload.php';

use \tzfrs\GoogleSitemapParser;
use \tzfrs\Exceptions\GoogleSitemapParserException;
try {
    $posts = (new GoogleSitemapParser('http://www.sainsburys.co.uk/wcsstore/robots/sitemap_10151_4.xml.gz'))->parseCompressed();
    foreach ($posts as $post=>$priority) {
        print 'URL: '. $post . '<br>Priority: '. $priority . '<hr>';
    }
} catch (GoogleSitemapParserException $e) {
    print $e->getMessage();
}

方法

parse
parseFromRobots

贡献当然是被允许的!:-)

请参阅 LICENSE 文件以获取许可信息