【问题标题】:PHP - Why does parse_url() return false for /search/publication_year:2019?PHP - 为什么 parse_url() 为 /search/publication_year:2019 返回 false?
【发布时间】:2021-01-01 19:23:51
【问题描述】:

在 PHP 7.4.3 中,使用 parse_url() 解析以下 URL 会返回 false

/search/publication_year:2019

在文档中它说:

在严重格式错误的 URL 上,parse_url() 可能返回 false。

似乎它将包含: 后跟数字的网址视为“严重格式错误”。

任何想法如何解决这个问题?

【问题讨论】:

  • 此函数可能无法为相对 URL 提供正确的结果。见parse_url的注释

标签: php url


【解决方案1】:

parse_url() 有时会在未传入完整 URL 时给出不可靠的结果 - 尝试添加域和协议 - 您将在下面的示例中看到,如果我将 http://www.google.com/ 放入预期的响应中,则会返回。

php 5.4 中还有一个错误,当冒号出现时错误地返回 false。

见: https://www.tehplayground.com/okoFSmISFCKNYaav

对于 parse_url 的一些示例输出

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 2013-09-18
  • 1970-01-01
  • 2014-11-17
  • 2014-03-11
  • 2019-07-12
相关资源
最近更新 更多