我有一个在使用jquery序列化时会被编码的url,并且出现如下:
index.php?city%5B%5D=METROPLOIS&city%5B%5D=GOTHAM
假设是index.php?city [] = METROPLOIS& city [] = GOTHAM
另一方面,我正在使用joomla从网址中删除一堆变量
$city = JRequest::getVar('city');
现在,另一位用户非常擅长用PHP指出这个代码,它可以获取城市变量,然后将它们内爆到
$cities = $_GET['city'];
$str = "CITY='".implode("' OR CITY='",$city)."'";
$cities = $_GET['city'];
等同于$city = JRequest::getVar('city');
所以,我遇到了一个我不知道如何解决的挑战。如何解码Joomla中的网址,以便将city%5B%5D
识别为city[]
或city
。
我已经看到了这个:http://php.net/manual/en/function.urldecode.php,但这会拉下网址并将其放入字符串中。那么我怎么告诉Joomla从该字符串而不是URL中提取变量?
答案 0 :(得分:2)
使用urldecode解码网址
$decoded = urldecode('index.php?city%5B%5D=METROPLOIS&city%5B%5D=GOTHAM');
$query = parse_url($decoded, PHP_URL_QUERY);
parse_str($query, $params);
$city = $params['city'];
echo "CITY='".implode("' OR CITY='",$city)."'";
http://php.net/manual/en/function.parse-url.php
http://php.net/manual/en/function.parse-str.php