adabra / googlesitemapparser

Google Sitemap 是由 Ask.com、Google、YAHOO 和 MSN Search 支持的 Sitemap 标准。此库可以读取此类 Sitemap 并解析其中的所有 URL。

1.1.6 2020-10-21 15:21 UTC

This package is not auto-updated.

Last update: 2024-09-20 08:36:04 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 文件以获取许可信息