【php】php4でhttp_build_query()したい
http_build_query()関数が使えるのはphp5から。
php4で使いたいときは自作。
ソース
<?php
if (!function_exists('http_build_query')) {
function http_build_query($data, $prefix = '', $sep = '', $key = '') {
$ret = array();
foreach ((array)$data as $k => $v) {
if (is_int($k) && $prefix != null) {
$k = urlencode($prefix . $k);
}
if ((!empty($key)) || ($key === 0)) {
$k = $key . '[' . urlencode($k) . ']';
}
if (is_array($v) || is_object($v)) {
array_push($ret, http_build_query($v, '', $sep, $k));
} else {
array_push($ret, $k . '=' . urlencode($v));
}
}
if (empty($sep)) {
$sep = ini_get('arg_separator.output');
}
return implode($sep, $ret);
}
}
だいたい問題なく使えます。
$dataのキーに日本語が入る場合は、、、ちょっと書き直しが必要でしょうか…