From 4cb293e5a1ba33245b58dcac703ed65c10eafd65 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Mon, 30 Dec 2002 16:43:31 +0000 Subject: [PATCH] MFH --- ext/standard/tests/strings/url_t.phpt | 17 ++++++++++++++++- ext/standard/url.c | 16 ++++++++++------ 2 files changed, 26 insertions(+), 7 deletions(-) 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)))) { -- 2.40.0