Bug #54369 [NEW]: parse_url() incorrectly determines the start of query and fragment parts of URL
From:
Operating system:
PHP version: Irrelevant
Package: URL related
Bug Type: Bug
Bug description:parse_url() incorrectly determines the start of query and fragment parts of URL
Description:
------------
Attached patch fixes the issue.
Test script:
---------------
$url = 'http://www.example.com#fra/gment';
echo $url . "\n";
var_dump(parse_url($url));
$url = 'http://www.example.com?p=1/param';
echo $url . "\n";
var_dump(parse_url($url));
// No host, should return false
$url = 'http://#fra/gment';
echo $url . "\n";
var_dump(parse_url($url));
// No host, should return false
$url = 'http://?p=1/param';
echo $url . "\n";
var_dump(parse_url($url));
Expected result:
----------------
http://www.example.com#fra/gment
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(15) "www.example.com"
["fragment"]=>
string(9) "fra/gment"
}
http://www.example.com?p=1/param
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(15) "www.example.com"
["query"]=>
string(9) "p=1/param"
}
http://#fra/gment
bool(false)
http://?p=1/param
bool(false)
Actual result:
--------------
http://www.example.com#fra/gment
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(19) "www.example.com#fra"
["path"]=>
string(6) "/gment"
}
http://www.example.com?p=1/param
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(19) "www.example.com?p=1"
["path"]=>
string(6) "/param"
}
http://#fra/gment
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(4) "#fra"
["path"]=>
string(6) "/gment"
}
http://?p=1/param
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(4) "?p=1"
["path"]=>
string(6) "/param"
}
--
Edit bug report at http://bugs.php.net/bug.php?id=54369&edit=1
--
Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=54369&r=trysnapshot52
Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=54369&r=trysnapshot53
Try a snapshot (trunk): http://bugs.php.net/fix.php?id=54369&r=trysnapshottrunk
Fixed in SVN: http://bugs.php.net/fix.php?id=54369&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=54369&r=needdocs
Fixed in release: http://bugs.php.net/fix.php?id=54369&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=54369&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=54369&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=54369&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=54369&r=support
Expected behavior: http://bugs.php.net/fix.php?id=54369&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=54369&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=54369&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=54369&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=54369&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=54369&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=54369&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=54369&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=54369&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=54369&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=54369&r=mysqlcfg
Thread (15 messages)
- tomas dot brastavicius at quantum dot lt
- tokul at users dot sourceforge dot netBug #54369 [Com]: parse_url() incorrectly determines the start of query and fragment parts of URL
- tomas dot brastavicius at quantum dot ltBug #54369 [Com]: parse_url() incorrectly determines the start of query and fragment parts of URL
- tomas dot brastavicius at quantum dot ltBug #54369 [Com]: parse_url() incorrectly determines the start of query and fragment parts of URL
- tokul at users dot sourceforge dot netBug #54369 [Com]: parse_url() incorrectly determines the start of query and fragment parts of URL
- tomas dot brastavicius at quantum dot ltBug #54369 [Opn]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- lenzai2004-dev at yahoo dot comBug #54369 [Com]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- woody dot gilk at gmail dot comBug #54369 [Com]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- cmb@php.netBug #54369 [Opn]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- cmb@php.netBug #54369 [Opn]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- acm at tweakers dot netBug #54369 [Com]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- cmb@php.netBug #54369 [Opn]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- acm at tweakers dot netBug #54369 [Com]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- tomas dot brastavicius at quantum dot ltBug #54369 [Com]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts
- requinix@php.netBug #54369 [Opn->Dup]: [PATCH] parse_url() incorrectly determines the start of query and fragment parts