|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-03-08 23:08 UTC] mike@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 17:00:01 2025 UTC |
Description: ------------ According to RFC3986, which I beleive to be the latest in a long line of RFCs on URI syntaxt, it is illegal to use square brackets in the search string. There is a comment on the PHP manual page for rawurlencode that states that these are now permitted but extensive RFC reading and googling fails to back this up for me. From what I can gather they should be encoded as %5B and %5D. Here is the pseudo fix: str_replace(array('[',']'), array('%5B','%5D'), http_build_query(array('hello' => array('interesting','eh')))) The fix is quite simple and some small changes need to be made to http.c - I've not got a patch unfortunatly, but it should only take a short while to fix and would probably take just as long as a patch review ;) Reproduce code: --------------- echo http_build_query(array('hello' => array('interesting','eh')))."\n"; Expected result: ---------------- hello%5B0%5D=interesting&hello%5B1%5D=eh Actual result: -------------- hello[0]=interesting&hello[1]=eh