如何在PHP中应用URL规范化规则?

时间:2010-11-14 01:12:38

标签: php url normalization

PHP中是否存在预先存在的URL规范化功能或类?

具体来说,遵循此wikipedia article on URL normalization中规定的语义保留规范化规则,(或者我应该遵循的任何标准'标准)。

  • 将方案和主机转换为小写
  • 将转义序列中的字母大写
  • 添加尾随/(到目录,而不是文件)
  • 删除默认端口
  • 删除点段

现在,我认为我只会使用parse_url(),并单独应用规则,但我更愿意避免重新发明轮子。

1 个答案:

答案 0 :(得分:6)

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映射到目录的方法,这种方式很难以通用的方式进行。但它很接近。

参考文献: