当前位置: 首页 > 面试题库 >

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

蒋乐意
2023-03-14
问题内容

PHP中是否存在用于URL规范化的预先存在的函数或类?

具体来说,请遵循Wikipedia文章中有关URL规范化的语义保留规范化规则(或我应该遵循的任何“标准”)。

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

现在,我认为我将只使用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映射到目录的方法,而这是一种通用的方法。但这很接近。

参考文献:

  • http://pear.php.net/package/Net_URL2
  • http://pear.php.net/package/Net_URL2/docs/latest/Net_URL2/Net_URL2.html


 类似资料:
  • 我想使用Batchnormalization来规范化批次维度,但keras中的批次维度自然是无维度的。那我该怎么办呢。 keras示例显示,conv2d的轴为-1,这表示通道尺寸。 轴:整数,应规格化的轴(通常是特征轴)。例如,在具有data\u format=“channels\u first”的Conv2D层之后,在BatchNormalization中设置axis=1。

  • 问题内容: 我需要找到两个WSDL文件中的差异。我从这里像这样漂亮地打印它们开始,但是我看到在两个定义的文件中(无论出于何种愚蠢的原因)都以不同的顺序进行了相同的操作(例如s)。我想进一步规范化这些文件,以便以后可以使用诸如standard之类的东西来查找差异。 不知道WSDL是否有定义的规范形式,我知道有Canonical XML ,但是我需要进一步讲解并排序所有顺序无关紧要的东西。 问题答案:

  • 开发的网站在远程服务器和本地机器上运行良好(使用STS IDE时),最近我开始使用Intellij IDEA(我创建了一个网站代码的副本,没有任何更改),我开始得到URL未规范化错误。 intellij处理Spring Security性的方式是否与STS有所不同?或者原因是什么? 我不想使用自定义火力。 这是来自属性: 错误是: 注:我正在使用JDK8、Spring Boot 2、Spring

  • 主要内容:范式的类型规范化是在数据库中组织数据的过程。 规范化用于最小化关系或关系集的冗余。 它还用于消除插入,更新和删除异常等不良特性。 规范化将较大的表分成较小的表,并使用关系链接它们。 普通表单用于减少数据库表中的冗余。 范式的类型 有四种类型的范式: 范式 描述说明 1NF 如果它包含原子值,则关系为第范式(1NF)。 2NF 如果它在1NF中,则关系将在2NF中,并且所有非关键属性完全依赖于主键。 3NF

  • 问题内容: 在Python中,是否存在标准化unicode字符串的标准方法,以使其仅包含可用于表示它的最简单的unicode实体? 我的意思是,一些东西,想翻译的顺序来? 查看问题出在哪里: 但现在: 当然,我可以遍历所有字符并进行手动替换等,但是效率不高,我敢肯定我会错过一半的特殊情况,并且会犯错误。 问题答案: 该模块提供一个功能,您要标准化为NFC格式: NFC或“普通形式组合”返回组成的字

  • 问题内容: 在Java中创建XML规范格式的最简单方法是什么?你有一些完成的代码吗?我在网上找到了几个链接,例如this,this和this,但我无法使其正常工作:/ 谢谢, 伊万 编辑:我使用了在那里提出的规范化器,但是得到了奇怪的结果。更精确地说,此方法不会删除元素之间的空格…这就是我得到的: 问题答案: Apache XML Security项目 的Canonicalizer类: