Req #71231 [Com]: parse_url doesn't urldecode urlencoded characters
[email protected] ("zelnaga at gmail dot com")
| Newsgroups | php.bugs |
|---|---|
| Message-ID | <[email protected]> |
Edit report at https://bugs.php.net/bug.php?id=71231&edit=1 ID: 71231 Comment by: zelnaga at gmail dot com Reported by: zelnaga at gmail dot com Summary: parse_url doesn't urldecode urlencoded characters Status: Open Type: Feature/Change Request Package: URL related Operating System: Windows 7 PHP Version: 7.0.1 Block user comment: N Private report: N New Comment: Double decoding would be a BC breaking change but none-the-less I believe it's the correct behavior to decode. If you make an HTTP request to that URL Google's webserver decodes it as /search?q=test . Like if you do /search?q=te%28st you'd get q=te%28st in the query part of the array but I believe it should be q=te#st because that's what the web server wold see with $_GET['q'] - not te%28st. Previous Comments: ------------------------------------------------------------------------ [2015-12-28 20:50:37] [email protected] If anyone care to implement decoding feature, please _never_ decode by default, since double(multiple) decoding is a cause of security issues. ------------------------------------------------------------------------ [2015-12-28 20:47:30] [email protected] This is not a bug. ------------------------------------------------------------------------ [2015-12-28 19:31:07] zelnaga at gmail dot com Description: ------------ If you urlencode a character in a URL than the parsed version of that URL ought to contain that character urldecoded in the output. Test script: --------------- <?php $a = parse_url('https://www.google.com/se%61rch?q=test'); print_r($a); Expected result: ---------------- Array ( [scheme] => https [host] => www.google.com [path] => /search [query] => q=test ) Actual result: -------------- Array ( [scheme] => https [host] => www.google.com [path] => /se%61rch [query] => q=test ) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=71231&edit=1