PHP 8.5.0 Released!

Voting

: nine plus zero?
(Example: nine)

The Note You're Voting On

mike dot coley at inbox dot com
18 years ago
Here is a little function that does the opposite of the parse_str function. It will take an array and build a query string from it.
<?php
/* Converts an array of parameters into a query string to be appended to a URL.
 *
 * @return string : Query string to append to a URL.
 * @param array $array : Array of parameters to append to the query string.
 * @param string $parent : This should be left blank (it is used internally by the function).
 */
function append_params($array, $parent='')
{
 $params = array();
 foreach ($array as $k => $v)
 {
 if (is_array($v))
 $params[] = append_params($v, (empty($parent) ? urlencode($k) : $parent . '[' . urlencode($k) . ']'));
 else
 $params[] = (!empty($parent) ? $parent . '[' . urlencode($k) . ']' : urlencode($k)) . '=' . urlencode($v);
 }
 $sessid = session_id();
 if (!empty($parent) || empty($sessid))
 return implode('&', $params);
 // Append the session ID to the query string if we have to.
 $sessname = session_name();
 if (ini_get('session.use_cookies'))
 {
 if (!ini_get('session.use_only_cookies') && (!isset($_COOKIE[$sessname]) || ($_COOKIE[$sessname] != $sessid)))
 $params[] = $sessname . '=' . urlencode($sessid);
 }
 elseif (!ini_get('session.use_only_cookies'))
 $params[] = $sessname . '=' . urlencode($sessid);
 return implode('&', $params);
}
?>

Note that the function will also append the session ID to the query string if it needs to be.

<< Back to user notes page

AltStyle によって変換されたページ (->オリジナル) /