edulazaro / urlnormalizer
本包最新版本(v1.0.2)没有提供许可信息。
一个用于标准化URL和过滤URL的包
v1.0.2
2024-04-15 22:57 UTC
Requires (Dev)
- phpunit/phpunit: ^9.6
README
介绍
URL nnormalizer 允许标准化一个URL。标准化URL是指根据一组规则标准化的URL格式。URL标准化的目的(或URL规范化)是将URL转换为一个标准化或规范化的形式。这样,本质上相同但表示不同的URL被认为是相等的,由Web服务器或应用程序识别。
标准化有助于减少指向相同内容的多个URL的重复。例如,以下URL可能指向相同的内容,但表示不同
例如,URL http://edulazaro.com?a=1&b=2
和 http://edulazaro.com?b=2&a=1
是相同的,可以标准化为 http://edulazaro.com?a=1&b=2
。
相同的情况也出现在URL http://edulazaro.com/
和 http://edulazaro.com
,其中正斜杠是无关紧要的。
相同的情况也出现在类似 /../
或 /./
的点段以及类似 %61
这样的已编码的非保留字符,它可以表示为 a
。
安装
要安装此包,只需执行以下命令
composer require edulazaro/urlnormalizer
使用
只需导入类 URLNormalizer
并使用 normalize
方法即可
use Edulazaro\URLNormalizer\URLNormalizer; $normalizer = new URLNormalizer(); $normalizedURL = $normalizer->normalize('http://edulazaro.com?a=1&b=2');
您还可以通过使用 getURLTopLevelDomain
方法获取URL的最高域名
use Edulazaro\URLNormalizer\URLNormalizer; $normalizer = new URLNormalizer(); $topDomain = $normalizer->getURLTopLevelDomain('http://test.edulazaro.com?a=1&b=2');
还包含了类 URLCounter
,您可以使用它来计算数组中唯一标准化URL的数量
use Edulazaro\URLNormalizer\URLCounter; $normalizer = new URLCounter(); $normalizedURLs = $normalizer->countUniqueUrls([ 'http://edulazaro.com?a=1&b=2', 'http://edulazaro.com?a=2&b=1' ]);
或者您也可以按顶级域名来计数
use Edulazaro\URLNormalizer\URLCounter; $normalizer = new URLCounter(); $normalizedURLsPerDomain = $normalizer->countUniqueUrlsPerTopLevelDomain([ 'http://test.edulazaro.com?a=1&b=2', 'http://edulazaro.com?a=2&b=1', 'http://neoguias.com' ]);
测试
要测试此包,请运行 composer test
。