|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[1999-03-20 18:26 UTC] kundrat at general-it dot sk
it is a minor glitch, though parse_url('?') returns path
set, but query unset. After looking at url_parse() it seeems,
that is would be more rational to test for subs[7].rm_so <= lentgh
Equality case makes more sense for all the comparisons (maybe
except for scheme where it wouldnt matter). Result of this
would be, that any part that has its prefix present but value
absent and is at the end of string would be set (though empty)
Examples: '?' - query should be set, 'path#' fragment should
be set, 'http://' hostname should be set to empty
Another glitch is regexp for user:pass@host:port part. Now
the regexp is ^(([^@:]+)(:([^@:]+))?@)?([^:@]+)(:([^:@]+))?
while i suggest ^(([^@:]*)(:([^@:]*))?@)?([^:@]*)(:([^:@]*))?
This is also in accordance with regex for the whole url.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Nov 04 23:00:01 2025 UTC |
If you get URL as user input it can be bogus. parse_url could be very useful to find if the URL is bogus and what parts of it are bogus. Another point is, that even bogus looking URL's could be valid (partial only). Also i believe that parse_url('path?') wouldnt have quere set (although i cant verify it at the moment). And the last point is correctness. Even if it is not significant, it would be nice if it behaved the expected way.If this isn't a bug, it is at least an inconsistency. parse_url('?') doesn't set a query key parse_url('?#fragment') does Neither URL has what I would consider a query string, but the query key is set in the second case. That behavior should be consistent one way or the other, imho.