Edit report at https://bugs.php.net/bug.php?id=80266&edit=1
ID: 80266
Updated by: cmb@php.net
Reported by: smiley at chillerlan dot net
Summary: parse_url silently drops invalid port number,
inconsistent across platforms
Status: Open
Type: Documentation Problem
Package: *URL Functions
Operating System: Windows
PHP Version: 7.3.24, 7.4.12
Block user comment: N
Private report: N
New Comment:
> It would make more sense to include the zero port in the output
> to me.
After further consideration, I have to agree.
Previous Comments:
------------------------------------------------------------------------
[2020-10-27 11:12:46] nikic@php.net
| URIs with a 0 port are generally valid, so parse_url() should
| recognize such URIs, but still report the port as missing.
I do wonder whether that's the right behavior. It would make more sense to include the zero
port in the output to me.
------------------------------------------------------------------------
[2020-10-21 12:41:06] smiley at chillerlan dot net
> Apparently, we should document that behavior.
Yes, that would be greatly appreciated, also a mention in UPGRADING would be helpful.
Thanks for clearing this up and thank you for your time! I think this can be closed then. Cheers!
------------------------------------------------------------------------
[2020-10-21 10:00:48] cmb@php.net
Firstly, this is not particularly related to PHP 8.0,
but rather affects PHP-7.3+.
> [â¦] in fact, you could reproduce what the Windows build of the
> GH actions runner didn't.
The GH actions runner uses PHP 7.4.11 (which does not have that
bugfix) and some PHP 8.0.0-dev version (which presumably does not
have the bugfix either).
> Aside, if this is now expected behaviour, why is the "port" key
> with a value 0 missing in the array
From the commit message:
| URIs with a 0 port are generally valid, so parse_url() should
| recognize such URIs, but still report the port as missing.
Apparently, we should document that behavior.
------------------------------------------------------------------------
[2020-10-21 07:44:18] smiley at chillerlan dot net
@cmb: in fact, you could reproduce what the Windows build of the GH actions runner didn't.
Aside, if this is now expected behaviour, why is the "port" key with a value 0 missing in
the array - according to the previously linked bug, the port number 0 should be treated as valid?
------------------------------------------------------------------------
[2020-10-21 07:36:40] cmb@php.net
$ x64\Debug\php -v
PHP 8.0.0-dev (cli) (built: Oct 16 2020 18:46:05) ( NTS Visual C++ 2019 x64 DEBUG )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
C:\php-sdk\phpdev\vs16\x64\php-src-8.0
$ x64\Debug\php -r "var_dump(parse_url('//portcannotbezero.com:0'));"
array(1) {
["host"]=>
string(20) "portcannotbezero.com"
}
IOW, I cannot reproduce.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=80266
--
Edit this bug report at https://bugs.php.net/bug.php?id=80266&edit=1