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

Reply via email to