adabra / googlesitemapparser
Google Sitemap 是由 Ask.com、Google、YAHOO 和 MSN Search 支持的 Sitemap 标准。此库可以读取此类 Sitemap 并解析其中的所有 URL。
1.1.6
2020-10-21 15:21 UTC
Requires
- php: >=5.5.9
- adabra/curl: ^4.0
README
一个易于使用的库,用于解析符合 Google 标准的 sitemap
安装
通过 composer 安装
{ "require": { "tzfrs/googlesitemapparser": "1.0.*" } }
运行 composer install
或 composer 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
文件以获取许可信息