2011-08-24 11 views
4

私はcURLで遊んでいて、POST変数として配列を送信しようとしています。私は$ _POSTをINGの」print_r単に終了を受けている要素にアンパサンドを前置するparse_str?

curl_setopt($this->ch, CURLOPT_POSTFIELDS, http_build_query($sendParams)); 

ので、私はを介して送信されているかを見ることができます:私は期待通りに文字列を渡すhttp_build_queryを使うことにしました。

しかし、の後ろにアンパサンドが添付されています。最初はですが、これは正常ですか?私は、クエリ文字列を解析するときparse_strはcURLので使用されていることを前提とし、そうここもアンパサンドにつながる超簡単な例である:

<?php 
    $array = array('foo', array('bar' => array('baz' => array(1,2,3))), 'test' => array(2,3,4)); 
    parse_str(http_build_query($array), $vars); 
    print_r($vars); 
?> 

戻り値:

Array ([0] => foo [amp;1] => Array ([bar] => Array ([baz] => Array ([0] => 1 [1] => 2 [2] => 3))) [amp;test] => Array ([0] => 2 [1] => 3 [2] => 4)) 

答えて

6

は自分に答えているように見えます質問... parse_strは、&と混同されています。クエリ文字列を解析する前に、最初にhtml_entity_decodeを実行する必要があります。

関連する問題