【问题标题】:PHP URL not allowing '+' symbolPHP URL 不允许使用“+”符号
【发布时间】:2016-12-19 09:36:17
【问题描述】:

我正在使用以下网址,

http://example.com/walkthrough?hostid=abcd&inspectoremail=abc+@gmail.com

我在这样的变量中获取检查邮件。

$inspectoremail = $_GET['inspectoremail'];

但是当我回显 $inspectoremail 时,它正在用空格替换“+”符号。

abc @gmail.com

那么我怎样才能获得在 url 中指定的检查邮件。 任何帮助深表感谢。谢谢

【问题讨论】:

  • + 在 URL 中有特殊的含义;如果你想要一个文字 + 然后 urlencode 它
  • 或者,将space替换为+
  • 是的,这对我有用。

标签: php laravel url


【解决方案1】:

当您在 URL 中传递特殊字符时,您应该对它们进行编码(在 php 中使用 urlencode)。

在您的示例中 - 加号 (+) 字符被转换为 %2B,因此您应该使用:

http://example.com/walkthrough?hostid=abcd&inspectoremail=abc%2B@gmail.com

如果您尝试对空格字符 () 进行编码,您将看到此字符将转换为 +,因此当服务器解码字符串时,abc+@gmail.com 的值将是 abc @gmail.com(即就是你得到的)。

【讨论】:

  • 所以编码后,如果我 echo $_GET['inspectoremail'] 也是一样的,+换成空格..!
  • 如何编码然后解码 url 以便它也反映在 GET 方法中。 ??
  • @Aamir,答案是否为您提供了解决方案,还是您仍然在这里遗漏了什么?
  • 我在上面的@Tom 的 cmets 中得到了解决方案。我用'+'替换了空格
猜你喜欢
  • 2012-03-09
  • 2015-04-09
  • 2016-10-05
  • 1970-01-01
  • 2010-12-16
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多