PHP 中是否有用于 URL 规范化的预先存在的函数或类?
具体来说,遵循此 wikipedia article on URL normalization 中规定的语义保留规范化规则,(或我应该遵循的任何“标准”)。
- 将方案和主机转换为小写
- 转义序列中的字母大写
- 添加尾随/(到目录,而不是文件)
- 删除默认端口
- 删除点段
现在,我想我将只使用 parse_url()
,并单独应用规则,但我宁愿避免重新发明轮子。
最佳答案
Pear Net_URL2 库看起来至少可以满足您的部分需求。它将删除点段、修复大小写并删除默认端口:
include("Net/URL2.php");
$url = new Net_URL2('HTTP://example.com:80/a/../b/c');
print $url->getNormalizedURL();
发出:
http://example.com/b/c
我怀疑是否存在用于向目录添加尾部斜线的通用机制,因为您需要一种方法将 url 映射到目录,而这很难以通用方式实现。但它很接近。
引用资料:
关于php - 如何在 PHP 中应用 URL 规范化规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175630/