我正在尋找PHP函數的名稱,以從鍵值對的數組構建查詢字符串。請注意,我在尋找內置的PHP函數來做到這一點,而不是一個自制的(這是所有的谷歌搜索似乎返回)。有一個,我只是不記得它的名字或在php.net上找到它。 IIRC的名字並不那麼直觀。PHP函數從數組中構建查詢字符串
133
A
回答
255
您正在尋找http_build_query()
。
0
我不知道一個內置的功能,但在PECL類http://uk.php.net/manual/en/class.httpquerystring.php
0
Implode將數組合併爲你一個字符串,而是使一個SQL查詢了凱/值對你」你必須編寫你自己的功能。
+0
試過,但它不會工作。我試圖建立一個http查詢字符串,它需要數組中的鍵和值,implode不能這樣做。 – 2008-12-30 17:00:21
+2
我看到了,不確定你的意思是一個SQL查詢字符串還是一個http查詢字符串。 – 2008-12-30 21:05:50
22
這裏有一個簡單的PHP4友好的實現:
/**
* Builds an http query string.
* @param array $query // of key value pairs to be used in the query
* @return string // http query string.
**/
function build_http_query($query){
$query_array = array();
foreach($query as $key => $key_value){
$query_array[] = urlencode($key) . '=' . urlencode($key_value);
}
return implode('&', $query_array);
}
0
但逆這項工作,你可以使用:
void parse_str(str $input, array $output);
//for example:
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
好運。
2
正如除了@thatjuan
的答案。這
更多兼容PHP4版本:
if (!function_exists('http_build_query')) {
if (!defined('PHP_QUERY_RFC1738')) {
define('PHP_QUERY_RFC1738', 1);
}
if (!defined('PHP_QUERY_RFC3986')) {
define('PHP_QUERY_RFC3986', 2);
}
function http_build_query($query_data, $numeric_prefix = '', $arg_separator = '&', $enc_type = PHP_QUERY_RFC1738)
{
$data = array();
foreach ($query_data as $key => $value) {
if (is_numeric($key)) {
$key = $numeric_prefix . $key;
}
if (is_scalar($value)) {
$k = $enc_type == PHP_QUERY_RFC3986 ? urlencode($key) : rawurlencode($key);
$v = $enc_type == PHP_QUERY_RFC3986 ? urlencode($value) : rawurlencode($value);
$data[] = "$k=$v";
} else {
foreach ($value as $sub_k => $val) {
$k = "$key[$sub_k]";
$k = $enc_type == PHP_QUERY_RFC3986 ? urlencode($k) : rawurlencode($k);
$v = $enc_type == PHP_QUERY_RFC3986 ? urlencode($val) : rawurlencode($val);
$data[] = "$k=$v";
}
}
}
return implode($arg_separator, $data);
}
}
相關問題
- 1. 解析PHP數組構建查詢字符串
- 2. 構建多參數查詢字符串
- 3. 從php數組構建PDO MYSQL查詢?
- 4. 使用數組數據構建查詢字符串
- 5. 查詢字符串數組在PHP
- 6. php mysql查詢字符串數組
- 7. 從字符串構建數組
- 8. php從字符串值創建函數
- 9. 如何從PHP中的字符串構建動態數組?
- 10. Fullcalendar函數從URL查詢字符串創建事件數據
- 11. PHP函數從陣列構建查詢字符串 - 而不是http建立查詢
- 12. 從字符串列表構建查詢
- 13. 從字符串構建sqlalchemy查詢
- 14. PHP函數從字符串
- 15. 使用字符串/數組來構建查詢
- 16. 使用多維數組構建查詢字符串
- 17. 從查詢字符串創建PHP Breadcrumbs
- 18. 構建從SQL查詢數組的數組用PHP
- 19. 從SQL查詢中構建數組
- 20. 字符串相等構建從字符數組字符串或串接字符
- 21. PHP:查詢函數erron執行更新查詢字符串
- 22. PHP:從字符串的數字數組
- 23. MySQL查詢參數字符串數組
- 24. 將查詢字符串數組從iOS發送到PHP
- 25. PHP查找數組中的字符串?
- 26. Sequelize:其中查詢字符串在字符串數組中postgresql
- 27. 如何從PHP數組構建JS數組並返回字符串?
- 28. 從數組中創建字符串的函數(Mathematica)
- 29. 查詢構建SQL函數
- 30. 從PHP字符串執行PHP函數
是的,就是那個。 – 2008-12-30 17:00:55