2016-09-28 80 views
1

在这里我有一个值有一个白色的空间。我通过rawurlencode()的价值。但是当我想在数据库查询使用sql中的值,我不能逃脱"%20"这是增加,而不是空白从原始URL编码的值中获取空白符号?

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

在后端我使用$_GET['val'] ..但它有类似"al%20zami"。如何逃脱他们$_GET可变

+1

的编码被用于减少所述字符设置为禁止的字符。作为请求值的一部分,转义序列会自动转回。此外,还有像[rawurldecode()](https://secure.php.net/manual/en/function.rawurldecode.php)这样的东西。 – syck

+0

您在URL的'='符号之前有一个空格。你为什么需要一个? – Xenos

回答

1

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

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

Ref: php Manual

0

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

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

我怀疑你是一个有点困惑在这里您的术语,因为%20已经逃走了。你似乎在问,据我了解你的问题,它是如何去做的。

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

这就是说。您在$_GET阵列中获得URL转义值的事实似乎表明您的代码中可能存在一些其他问题。
正常情况下,服务器在从客户端接收到转义值时会自动转换这些值,因此在大多数情况下,手动转义这些转义值绝不是必需的。

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

+0

其实我正在使用codeigniter。它不会自动忽略数据。我不知道为什么?所以,我不得不想出一个简单的例子来表达我的问题 –

+0

在涉及任何框架或任何其他PHP代码之前发生了无法解决的问题。所以这不应该对结果有任何影响。然而,它可能会做的是双重转义你的输出,所以它看起来并没有在收到时解开它。 – ChristianF