2013-06-05 50 views
0

我有一個URL,它是這種格式:如何解析包含一些參數,以獲得每個參數的鍵值對的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中。 (關鍵是總是存在的,值可能會或可能不會從上面看到)

如何將所有參數提取到具有值爲「」的鍵值對的數組中(即null字符串)的情況下,該參數只有在網址中的關鍵字?

+2

http://php.net/manual/en/function.parse-str.php –

+3

所有這些都在你的$ _GET數組中 –

+0

另一種方法是在循環中至少使用'explode'至少2次。首先分離變量對'variable = value',然後分離'variable'和'value'。 – gustyaquino

回答

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)); 

?> 

希望這有助於。

0

只需使用$ _GET變量:

例如:(取自here

> <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

然後數據可以是acce ssed如下

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

因此,它已經爲您設置了一個數組。

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] =>) 
相關問題