From: Ilia Alshanetsky Date: Mon, 30 Dec 2002 16:43:31 +0000 (+0000) Subject: MFH X-Git-Tag: PHP_4_3_before_13561_fix~162 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4cb293e5a1ba33245b58dcac703ed65c10eafd65;p=php MFH --- diff --git a/ext/standard/tests/strings/url_t.phpt b/ext/standard/tests/strings/url_t.phpt index 78cf2bbeeb..78a6706f54 100644 --- a/ext/standard/tests/strings/url_t.phpt +++ b/ext/standard/tests/strings/url_t.phpt @@ -63,7 +63,8 @@ $sample_urls = array ( 'foo://foo@bar', 'mailto:me@mydomain.com', '/foo.php?a=b&c=d', -'foo.php?a=b&c=d' +'foo.php?a=b&c=d', +'http://user:passwd@www.example.com:8080?bar=1&boom=0' ); foreach ($sample_urls as $url) { @@ -601,3 +602,17 @@ array(2) { ["query"]=> string(7) "a=b&c=d" } +array(6) { + ["scheme"]=> + string(4) "http" + ["host"]=> + string(15) "www.example.com" + ["port"]=> + int(8080) + ["user"]=> + string(4) "user" + ["pass"]=> + string(6) "passwd" + ["query"]=> + string(12) "bar=1&boom=0" +} diff --git a/ext/standard/url.c b/ext/standard/url.c index d59f6139cb..be91dffdb0 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -157,12 +157,16 @@ PHPAPI php_url *php_url_parse(char *str) goto nohost; } - if (!(e = strchr(s, '/'))) { - e = ue; - } else if (e && e == s) { - e = ue; - } - + e = ue; + + if (!(p = strchr(s, '/'))) { + if ((p = strchr(s, '?'))) { + e = p; + } + } else { + e = p; + } + /* check for login and password */ if ((p = memchr(s, '@', (e-s)))) { if ((pp = memchr(s, ':', (p-s)))) {