从原始url编码的值返回空格?

时间:2016-09-28 08:09:52

标签: php url-encoding

这里我有一个带有空格的值。我使用rawurlencode()传递了值。但是当我想在数据库查询中使用sql中的值时,我无法逃避"%20"添加而不是空格

<a href =<?php echo "www.example.com?val =".rawurlencode("al zami") ;>click</a>

在后端,我使用$_GET['val'] ..但它有类似"al%20zami"的内容。如何在$_GET变量

中转义它们

3 个答案:

答案 0 :(得分:1)

我怀疑你在这里对你的术语有点困惑,因为%20已经被转义了。就我理解你的问题而言,你似乎要问的是如何 unescape

对于那个问题,PHP manual for rawurlencode()有答案。请记住阅读整个页面,并仔细阅读。

话虽如此。您在$_GET数组中获取网址转义值这一事实似乎表明您的代码中可能存在其他一些问题。
通常,当从服务器接收转义值时,服务器会自动转换转义值,因此在大多数情况下,永远不需要手动取消它们。

因此,请发布您的代码的完整示例,从开始到结束突出显示问题。如果您这样做,我们可以帮助您找到并解决真正的问题。不只是症状。

答案 1 :(得分:1)

使用以下代码。这里 urldecode 解码给定字符串中的任何%##编码。

echo urldecode($_GET['val']);

Ref: php Manual

答案 2 :(得分:0)

你搞砸了代码。修复无用的空格,在属性周围添加引号,然后关闭PHP标记。

<a href="<?php echo "?val=".rawurlencode("al zami"); ?>">click</a>
<?php echo $_GET['val']; ?>