반응형
배열에서 쿼리 문자열을 빌드하는 PHP 함수
키 값 쌍의 배열에서 쿼리 문자열을 작성하기 위한 PHP 함수의 이름을 찾고 있습니다.참고로, 저는 이것을 하기 위한 내장 PHP 기능을 찾고 있습니다.홈브루가 아닙니다(구글 검색에서는 그것이 모두 반환되는 것 같습니다).이름이 생각나지 않거나 php.net에서 찾을 수 없는 것도 있습니다.IIRC의 이름은 그다지 직관적이지 않습니다.
를 찾고 있습니다.
다음은 간단한 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 );
}
에 추가되는 것과 마찬가지로@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);
}
}
Innode는 어레이를 문자열로 결합하지만 SQL 쿼리를 kay/value 쌍으로 만들려면 자체 함수를 작성해야 합니다.
언급URL : https://stackoverflow.com/questions/400805/php-function-to-build-query-string-from-array
반응형
'source' 카테고리의 다른 글
| MySQL 5.1보다 느린 Mariadb 5.5 (0) | 2023.01.09 |
|---|---|
| Jest: 객체 키와 값을 테스트하는 방법 (0) | 2023.01.09 |
| java.net 수정 방법Socket Exception:부러진 파이프? (0) | 2023.01.09 |
| 날짜/시간 열에 기반한 마지막 N일 데이터 선택 (0) | 2023.01.09 |
| MySQL에서 마리아DB의 순서가 잘못되었지만 수정되었습니다. (0) | 2023.01.09 |