edulazaro/urlnormalizer

本包最新版本(v1.0.2)没有提供许可信息。

一个用于标准化URL和过滤URL的包

v1.0.2 2024-04-15 22:57 UTC

This package is auto-updated.

Last update: 2024-09-15 23:49:44 UTC


README

Total Downloads Latest Stable Version

介绍

URL nnormalizer 允许标准化一个URL。标准化URL是指根据一组规则标准化的URL格式。URL标准化的目的(或URL规范化)是将URL转换为一个标准化或规范化的形式。这样,本质上相同但表示不同的URL被认为是相等的,由Web服务器或应用程序识别。

标准化有助于减少指向相同内容的多个URL的重复。例如,以下URL可能指向相同的内容,但表示不同

例如,URL http://edulazaro.com?a=1&b=2http://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