【问题标题】:GET returns https:/ not https://GET 返回 https:// 而不是 https://
【发布时间】:2018-09-14 14:59:13
【问题描述】:

我正在尝试使用https://github.com/spatie/url 解析来自$_GET['url'] 的网址,但可以这么说,GET 返回的网址无效。

当我使用echo $_GET['url']; 时,http://localhost/blog/external-link/https://duckduckgo.com 中的https://duckduckgo.com 返回https:/duckduckgo.com

为什么?我该如何解决?

【问题讨论】:

  • 小心使用这样的方法(当它工作时)——除非目标网址在您的数据库中或被列入白名单,否则很容易使用您的网站将网址启动到随机域...

标签: php url get


【解决方案1】:

我认为您需要对 URL 部分进行 urlencode:

echo urlencode('https://duckduckgo.com');

这将返回https%3A%2F%2Fduckduckgo.com

那是因为/-Sign 在网址中具有特殊含义。你不能使用未编码的。 所以试试http://localhost/blog/external-link/https%3A%2F%2Fduckduckgo.com,你会更成功。

【讨论】:

  • 谢谢。 http://localhost/blog/external-link/https%3A%2F%2Fduckduckgo.com 虽然在我的网络服务器上返回“找不到对象”,但现在我的骨头上有更多的肉。
猜你喜欢
  • 2016-01-29
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 2021-04-06
  • 2015-11-22
  • 2019-08-16
  • 2017-04-12
相关资源
最近更新 更多