I find this useful, but the name is a bit confusing because the function 
works differently than a combo of urlencode() / rawurlencode() and 
array_map(). One of my picks is build_query_string() (this doesn't conform 
to the naming convention though.)

Moriyoshi

"Sara Golemon" <[EMAIL PROTECTED]> wrote:

> proto urlencode_array(array formdata [, string numeric_prefix])
> 
> Purpose: Generate a form encoded query string from an associative (or
> indexed) array.
> 
> Example:
> 
>   $formdata = array('page'=>'home',
> 
> 'users'=>array('bob'=>array('fname'=>'Bob','lname'=>'Smith'),
> 
> 'jdoe'=>array('fname'=>'Jane','lname'=>'Doe')),
>                                'errors'=>array('missing date','missing
> time','sums not =='),
>                                 'other data');
> 
>   echo urlencode_array($formdata);
>   /* outputs the following
> 
> page=home&users[bob][fname]=Bob&users[bob][lname]=Smith&users[jdoe][fname]=J
> ane&users[jdoe][lname]=Doe&errors[0]=missing+date&errors[1]=missing+time&err
> ors[2]=sums+not+%3D%3D&0=other+data
>  */
> 
> Example 2:
> 
>   Same array as above but encoded using a prefix for numeric values:
> 
>   echo urlencode_array($formdata, 'misc_');
> 
> page=home&users[bob][fname]=Bob&users[bob][lname]=Smith&users[jdoe][fname]=J
> ane&users[jdoe][lname]=Doe&errors[0]=missing+date&errors[1]=missing+time&err
> ors[2]=sums+not+%3D%3D&misc_0=other+data
> 
> 
> Note Example 2 allows numerically indexed arrays to generate query strings
> which will yield legal variable names, but doesn't enforce such behavior.
> Also, the numeric_prefix only applies to the root array's indexes since
> subsequence arrays may be indexed without compromise.
> 
> The patch is available at:
> http://frankenbox.alphaweb.net/test/urlencode_array.diff.txt
> 
> The underlying function php_url_encode_hash() is meant for later use in
> http_request() and for handling a context option in the http:// wrapper, but
> it seems as though there's no harm exporting it to userland. (Hence the
> addition of urlencode_array() -- I'm flexible on the name, array_urlencode()
> has been suggested as well)
> 
> I'm looking for a couple +1s before I actually commit this though.
> 
> -Sara
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to