Edit report at https://bugs.php.net/bug.php?id=64604&edit=1
ID: 64604
Comment by: info at solidsystem dot it
Reported by: franssen dot roland at gmail dot com
Summary: parse_url is inconsistent with specified port
Status: Open
Type: Bug
Package: URL related
Operating System: Linux
PHP Version: 5.4.13
Block user comment: N
Private report: N
New Comment:
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
)
Previous Comments:
------------------------------------------------------------------------
[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