Bug #64604 [Asn->Csd]: parse_url is inconsistent with specified port
| From: | stas@php.net | Date: | Mon, 14 Apr 2014 01:42:26 +0000 |
| Subject: | Bug #64604 [Asn->Csd]: parse_url is inconsistent with specified port | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-185232@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=64604&edit=1
ID: 64604
Updated by: stas@php.net
Reported by: franssen dot roland at gmail dot com
Summary: parse_url is inconsistent with specified port
-Status: Assigned
+Status: Closed
Type: Bug
Package: URL related
Operating System: Linux
PHP Version: 5.4.13
Assigned To: yohgaki
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of ingo.walz@googlemail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=b05c088a3abf8e4c6fb6e40418423a9e2dd3d929
Log: Fixed bug #64604
Previous Comments:
------------------------------------------------------------------------
[2013-11-19 22:52:56] yohgaki@php.net
It seems OK to merge 5.4.
Any comments?
------------------------------------------------------------------------
[2013-07-26 10:59:25] info at solidsystem dot it
There's also this problem, verified on the following PHP versions:
PHP Version 5.3.3-7+squeeze15
PHP Version 5.4.4-14+deb7u2
Bug: The port is wrongly parsed when the host is omitted.
url: index.php?myVar=Size:10Array
(
[host] => index.php
[port] => 10
[query] => myVar=Size:10
)
url: http://myhost.com/index.php?myVar=Size:10Array
(
[scheme] => http
[host] => myhost.com
[path] => /index.php
[query] => myVar=Size:10
)
------------------------------------------------------------------------
[2013-04-07 13:16:38] franssen dot roland at gmail dot com
typo.
------------------------------------------------------------------------
[2013-04-07 13:14:49] franssen dot roland at gmail dot com
Description:
------------
Please see the test script. parse_url() is inconsistent with "//localhost:80/path"
Test script:
---------------
<?php
var_dump(parse_url('//localhost/path'));
var_dump(parse_url('//localhost:80/path'));
var_dump(parse_url('//localhost:/path'));
var_dump(parse_url('http://localhost:80/path'));
Expected result:
----------------
# //localhost/path
array(2) {
["host"]=>
string(9) "localhost"
["path"]=>
string(5) "/path"
}
# //localhost:80/path
array(2) {
["host"]=>
string(9) "localhost"
["port"]=>
int(80)
["path"]=>
string(5) "/path"
}
# //localhost:/path
array(2) {
["host"]=>
string(9) "localhost"
["path"]=>
string(5) "/path"
}
# http://localhost:80/path
array(4) {
["scheme"]=>
string(4) "http"
["host"]=>
string(9) "localhost"
["port"]=>
int(80)
["path"]=>
string(5) "/path"
}
Actual result:
--------------
# //localhost/path
array(2) {
["host"]=>
string(9) "localhost"
["path"]=>
string(5) "/path"
}
# //localhost:80/path
bool(false)
# //localhost:/path
array(2) {
["host"]=>
string(9) "localhost"
["path"]=>
string(5) "/path"
}
# http://localhost:80/path
array(4) {
["scheme"]=>
string(4) "http"
["host"]=>
string(9) "localhost"
["port"]=>
int(80)
["path"]=>
string(5) "/path"
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64604&edit=1