php-src/ext/standard/tests/url/bug69976.phpt
Christoph M. Becker e49922d3f8 Fix #69976: Unable to parse "all" urls with colon char
If a colon occurs in a query string or fragment of a partial URL without
scheme, parse_url() tries to regard it as port separator. If up to 5 digits
follow and then a slash or the end of the string, parse_url() fails.

We're fixing this by checking whether the colon is part of the query string or
the fragment, under the assumption that question marks and hash signs are only
allowed as separators of query string and fragments, respectively, what is
guarenteed for URIs (RFC 3986), but not necessarily for URLs (RFC 1738) where
question marks are allowed for usernames and passwords.

Anyhow, this constitutes a minor BC, so the fix is applied to master only.
2015-07-01 23:48:16 +02:00

35 lines
634 B
PHP

--TEST--
Bug #69976 (Unable to parse "all" urls with colon char)
--FILE--
<?php
var_dump(parse_url("/busca/?fq=B:20001"));
var_dump(parse_url("/busca/?fq=B:200013"));
var_dump(parse_url("/busca/?fq=home:01234"));
var_dump(parse_url("/busca/?fq=home:012345"));
?>
--EXPECT--
array(2) {
["path"]=>
string(7) "/busca/"
["query"]=>
string(10) "fq=B:20001"
}
array(2) {
["path"]=>
string(7) "/busca/"
["query"]=>
string(11) "fq=B:200013"
}
array(2) {
["path"]=>
string(7) "/busca/"
["query"]=>
string(13) "fq=home:01234"
}
array(2) {
["path"]=>
string(7) "/busca/"
["query"]=>
string(14) "fq=home:012345"
}