我从用户那里获得输入并对该输入文本执行过滤。
以下是示例: 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
然后它不会过滤掉最后一个单词。可以有人告诉我这里有什么问题吗?
答案 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
)。
要么是这样,要么在处理字符串时尝试修复过滤器以忽略'
。这肯定是原因。