0

我有一个采用这种格式的 URL:

/?basic-property-search=basic-property-search&search_address=306+W+12t+St&search_city=Pawnee&search_state=OK&search_zip=&submit=Submit&price-min=&price-max=&city=&state=&zip=&beds=&baths=&sqft=&status=

如您所见,有时每个参数都有一个值,有时则没有。但是上面列出的所有参数始终存在于 URL 中。(关键总是在那里;从上面可以看出,价值可能存在也可能不存在。)

如果该参数仅在 URL 中存在键,如何将所有参数提取到具有键值对且值为“”(即空字符串)的数组中?

4

3 回答 3

1
$x = "/?basic-property-search=basic-property-search&search_address=306+W+12t+St&search_city=Pawnee&search_state=OK&search_zip=&submit=Submit&price-min=&price-max=&city=&state=&zip=&beds=&baths=&sqft=&status=";

parse_str($x, $a);
print_r($a);

输出:

Array ( 
[/?basic-property-search] => basic-property-search 
[search_address] => 306 W 12t St 
[search_city] => Pawnee 
[search_state] => OK 
[search_zip] => 
[submit] => Submit 
[price-min] => 
[price-max] => 
[city] => 
[state] => 
[zip] => 
[beds] => 
[baths] => 
[sqft] => 
[status] => )
于 2013-06-05T13:38:08.893 回答
0

只需使用 $_GET 变量:

例如:(取自这里

> <form action="welcome.php" method="get"> Name: <input type="text"
> name="fname"> Age: <input type="text" name="age"> <input
> type="submit"> </form>

提交后,您将获得以下网址:

www.example.com/welcome.php?fname=Peter&age=37

然后可以按如下方式访问数据

Welcome <?php echo $_GET["fname"]; ?>.<br>
You are <?php echo $_GET["age"]; ?> years old!

因此,它已经为您设置在一个数组中。

于 2013-06-05T13:37:37.583 回答
0

这是php.net的解决方法

<?php 
/** 
 * Returns the url query as associative array 
 * 
 * @param    string    query 
 * @return    array    params 
 */ 
function convertUrlQuery($query) { 
    $queryParts = explode('&', $query); 

    $params = array(); 
    foreach ($queryParts as $param) { 
        $item = explode('=', $param); 
        $params[$item[0]] = $item[1]; 
    } 

    return $params; 
} 

$url = "/?basic-property-search=basic-property-search&search_address=306+W+12t+St&search_city=Pawnee&search_state=OK&search_zip=&submit=Submit&price-min=&price-max=&city=&state=&zip=&beds=&baths=&sqft=&status=";

$url = str_replace(array('/?','+'), array('',' '), $url);

print_r(convertUrlQuery($url));

?>

希望这可以帮助。

于 2013-06-05T13:48:29.123 回答