Antony Dovgal wrote: > On 04/27/2007 04:35 PM, elias wrote: >> Hi, >> >> why has the support for http arrays (bracket syntax) been removed in >> PHP 5.1.3 ? Yes [] not allowed by according RFC, but is that a >> reason for an BC break? Is it an accident or harassment? > > What are you talking about?
probably a reference to the 'correct' but rather annoying BC break in http_build_query() countless php apps make use of the ability of php to automatically convent get/post args whose names are suffixed with square brackets into [sub]arrays in the relevant superglobal array ... some of those app also make use of http_build_query() to 'cleanly' create url query parameter strings that e.g. $args = array('foo' => array('bar' => array(1,2,3), 'quz' => array(1,2,3))); echo '/foo.php?'.http_build_query($args); foo.php --- 8< --- var_dump($_GET['foo']); the var_dump() output used to be a neat nested array, but since 5.1.3 [although I remember it as 5.1.6] http_build_query() makes htmlentities of the square brackets so therefore the var_dump() gives you a string. the workable 'fix' I have been using was to postprocess http_build_query() output with the following - a 'solution' which makes my skin crawl just a little: function http_build_query_unborker($s) { return preg_replace('#%5[bd](?=[^&]*=)#ei', 'urldecode("\\0")', $s); } > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php