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: Bug
+Type: Documentation Problem
Package: *URL Functions
Operating System: Windows
PHP Version: 8.0.0RC2
Block user comment: N
Private report: N
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[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.
------------------------------------------------------------------------
[2020-10-21 07:00:33] smiley at chillerlan dot net
Since this was marked as "Not a bug", i'd like to point out the inconsistency across
the several platforms, as well as the current behaviour in userland. The used test stems from
current PSR-7 implementations where it is expected to be an invalid URI. See also: https://github.com/guzzle/psr7/blob/7858757f390bbe4b3d81762a97d6e6e786bb70ad/tests/UriTest.php#L137
------------------------------------------------------------------------
[2020-10-21 06:55:45] requinix@php.net
@sjon: But apparently the Windows builds aren't showing this new behavior.
------------------------------------------------------------------------
[2020-10-21 06:51:40] sjon@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
This is not a bug, for an extensive explanation see Bug #80114
https://bugs.php.net/bug.php?id=80114
------------------------------------------------------------------------
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