1

我有一个使用 jquery 序列化时被编码的 url,如下所示:

index.php?city%5B%5D=METROPLOIS&city%5B%5D=GOTHAM

应该是 index.php?city[]=METROPLOIS&city[]=GOTHAM

另一方面,我正在使用 joomla 从 url 中拉出一堆变量

$city = JRequest::getVar('city');

现在,另一个用户很好地向我指出了 PHP 中的这段代码,它将获取城市变量,然后将它们内爆到

$cities = $_GET['city'];

$str = "CITY='".implode("' OR CITY='",$city)."'";

$cities = $_GET['city'];相当于哪里$city = JRequest::getVar('city');

所以,我遇到了一个我不知道如何解决的挑战。如何在 Joomla 中解码 URL 以使其识别city%5B%5Dcity[]city.

我已经看到了:http://php.net/manual/en/function.urldecode.php,但这会拉下 URL 并将其放入字符串中。然后我将如何告诉 Joomla 从该字符串而不是 URL 中提取变量?

4

1 回答 1

2

使用urldecode对 url 进行解码

$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

于 2013-01-04T05:41:47.923 回答