是否可以在URL的查询字符串中消除空间和%2B的歧义?

时间:2016-07-01 16:15:11

标签: php validation url urlencode

我试图编写一个PHP函数来验证一个URL,这个URL基于用户输入可能已经或可能没有进行URL编码。

我从this answer知道空格应该按此编码:

  

您应该在%20?之前+

我的功能中的核心故障是使用:

!filter_var($url, FILTER_VALIDATE_URL) === false

虽然在路径或查询字符串中使用+将返回true,但在路径中处理它时没有问题。我可以轻松地从查询字符串中拆分路径,如果在路径中找到+,则返回false(要求用户决定%20%2B)。

但我的问题是如果我在查询字符串中找到+该怎么办?我如何知道这是否正确使用了编码空间,或者是否需要将其编码为%2B

0 个答案:

没有答案