Bug #64604 [Asn->Csd]: parse_url is inconsistent with specified port

From: 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

« previous php.bugs (#185232) next »