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

标签 php url normalization

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/

相关文章:

javascript - Avast 给出 JS :Injection-A[Trj] on my website 错误

html - 获取 HTML/cshtml 中的 URL

json - 快速从 URL 解析 JSON

python - 动态规范化 2D numpy 数组

php - 在 JSON 中传递 javascript 代码

php - 如何从此网址中删除 id 和 title?

php - PHP强制关闭(杀死)连接

php - 使用 URL 中的 ID 从 mySQL 中选择数据

android - 在 (0,1) 之间规范化 C++ 中的变量以获得算术精度

mysql - 选择非标准化形式的mysql数据