http_build_query

(PHP 5, PHP 7)

http_build_query���� URL-encode ֮��������ַ���

˵��

http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] ) : string

ʹ�ø����Ĺ��������±꣩��������һ������ URL-encode �������ַ�����

����

query_data

�����������������ԵĶ���

һ�� query_data ��������Ǽ򵥵�һά�ṹ��Ҳ��������������ɵ����飨�����ο��԰����������飩��

��� query_data ��һ������ֻ�� public �����Ի��������

numeric_prefix

����ڻ���������ʹ���������±�ͬʱ�����˸ò������˲���ֵ������Ϊ���������е������±�Ԫ�ص�ǰ׺��

����Ϊ���� PHP ������ CGI �������Ժ�����ݽ��н���ʱ��ȡ�Ϸ��ı�������

arg_separator

����ָ����ʹ�������������������� arg_separator.output ���ָ�������

enc_type

Ĭ��ʹ�� PHP_QUERY_RFC1738��

��� enc_type �� PHP_QUERY_RFC1738������뽫���� » RFC 1738 ��׼�� application/x-www-form-urlencoded ý�����ͽ��б��룬�ո�ᱻ����ɼӺţ�+����

��� enc_type �� PHP_QUERY_RFC3986�������� » RFC 3986 ���룬�ո�ᱻ�ٷֺű��루%20����

����ֵ

����һ�� URL �������ַ�����

������־

�汾 ˵��
5.4.0 ������ enc_type ������
5.1.3 ������Ҳ�ᱻת�塣
5.1.2 �����˲��� arg_separator��

����

Example #1 http_build_query() ʹ��ʾ��

<?php
$data 
= array('foo'=>'bar',
              
'baz'=>'boom',
              
'cow'=>'milk',
              
'php'=>'hypertext processor');

echo 
http_build_query($data) . "\n";
echo 
http_build_query($data'''&amp;');

?>

�������̻������

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Example #2 http_build_query() ʹ�������±��Ԫ��

<?php
$data 
= array('foo''bar''baz''boom''cow' => 'milk''php' =>'hypertext processor');

echo 
http_build_query($data) . "\n";
echo 
http_build_query($data'myvar_');
?>

�������̻������

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

Example #3 http_build_query() ʹ�ø��ӵ�����

<?php
$data 
= array('user'=>array('name'=>'Bob Smith',
                            
'age'=>47,
                            
'sex'=>'M',
                            
'dob'=>'5/12/1956'),
              
'pastimes'=>array('golf''opera''poker''rap'),
              
'children'=>array('bobby'=>array('age'=>12,
                                               
'sex'=>'M'),
                                
'sally'=>array('age'=>8,
                                               
'sex'=>'F')),
              
'CEO');

echo 
http_build_query($data'flags_');
?>

����������Ϊ�˿ɶ��ԣ����Ѿ������ˣ�

user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO

Note:

ֻ�л��������е������±�Ԫ��"CEO"�Ż�ȡ��ǰ׺�����������±�Ԫ�أ��� pastimes �µ�Ԫ�أ�����ҪΪ�˺Ϸ��ı�����������ǰ׺��

Example #4 http_build_query() ʹ�ö���

<?php
class parentClass {
    public    
$pub      'publicParent';
    protected 
$prot     'protectedParent';
    private   
$priv     'privateParent';
    public    
$pub_bar  Null;
    protected 
$prot_bar Null;
    private   
$priv_bar Null;

    public function 
__construct(){
        
$this->pub_bar  = new childClass();
        
$this->prot_bar = new childClass();
        
$this->priv_bar = new childClass();
    }
}

class 
childClass {
    public    
$pub  'publicChild';
    protected 
$prot 'protectedChild';
    private   
$priv 'privateChild';
}

$parent = new parentClass();

echo 
http_build_query($parent);
?>

�������̻������

pub=publicParent&pub_bar%5Bpub%5D=publicChild

�μ�

  • parse_str() - ���ַ��������ɶ������
  • parse_url() - ���� URL����������ɲ���
  • urlencode() - ���� URL �ַ���
  • array_walk() - ʹ���û��Զ��庯���������е�ÿ��Ԫ�����ص�����