从用户获取字符串并处理它

时间:2014-06-12 07:26:55

标签: php get

我从用户那里获得输入并对该输入文本执行过滤。

以下是示例: CODE

问题是,当我静态地$s时,它可以正常工作,但是当我以这种方式传递它时:

http:/mylocalpi/phone_filter.php?text=%27my%20long%20STRING%20with%20124%20mynumberis%208989243three56%20some%2040one34two3473%27

得到

        $s = $_GET['text'];  //
//    $s = "my long STRING with 124 mynumberis 4054545456 8989243three56 some Numbers 402three1345233nine3 5023one34533";   this works fine

然后它不会过滤掉最后一个单词。可以有人告诉我这里有什么问题吗?

2 个答案:

答案 0 :(得分:2)

使用此

$s = urldecode($_GET['text']);

答案 1 :(得分:1)

据我所知,你在常量中使用的字符串与通过URL发送的字符串之间缺乏相似性:

<强>恒

$s = "my long STRING with 124 mynumberis 4054545456 8989243three56 some Numbers 402three1345233nine3 5023one34533";

<强>网址:

$s = "'my long STRING with 124 mynumberis 4054545456 8989243three56 some Numbers 402three1345233nine3 5023one34533'";

因为您的网址如下所示:

?text=%27…%27

相同
?text='…'

正如您所看到的那样,您发送了一对'%27)来围绕您的字符串,您不需要它们。如果 static 版本的字符串以'开头和结尾,请尝试查看会发生什么。您的网址应如下所示:

?text=my%20long%20STRING%20with%20124%20mynumberis%204054545456%208989243three56%20some%20Numbers%20402three1345233nine3%205023one34533

没有任何前导或尾随'%27)。

要么是这样,要么在处理字符串时尝试修复过滤器以忽略'。这肯定是原因。