Doc #60797 [Wfx]: parse_url fragments on #[0-9]+;

From: Date: Wed, 25 Jan 2012 00:03:21 +0000
Subject: Doc #60797 [Wfx]: parse_url fragments on #[0-9]+;
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-7858@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60797&edit=1 ID: 60797 User updated by: buccinator at gmail dot com Reported by: buccinator at gmail dot com Summary: parse_url fragments on #[0-9]+; Status: Wont fix Type: Documentation Problem Package: URL related PHP Version: Irrelevant Block user comment: N Private report: N New Comment: fair enough. imho, as parse_url actually splits on fragment (which i would assume isnt actually sent in the HTTP request of a URL), i expected parse_url() to work on URLs found in the wild (ie. URLs intended for a browsers address bar, xHTML display) eg. a URL captured from a page anchor href tag. but again, i wouldnt have realised that a URL encoded with a HTML entity (regardless of proper context) would be considered malformed. Previous Comments: ------------------------------------------------------------------------ [2012-01-24 23:22:22] frozenfire@php.net Hash characters are not valid within a URL, except to delimit a fragment. RFC 1738 (http://www.ietf.org/rfc/rfc1738.txt) explicitly indicates under "2.2. URL Character Encoding Issues" that the hash character *must* be encoded for the URL to be valid. The parse_url() reference indicates in several places that malformed URLs will likely incur issues. As such, I don't feel it's warranted to document each way a URL can be malformed. ------------------------------------------------------------------------ [2012-01-24 23:11:50] buccinator at gmail dot com $url = 'http://example.com/key1=val1&key2=vals&#392;s&key3=vals&apos3;#fragment'; echo '<xmp>'; var_dump(parse_url($url)); echo '</xmp>'; actual output: array(4) { ["scheme"]=> string(4) "http" ["host"]=> string(11) "example.com" ["path"]=> string(21) "/key1=val1&key2=vals&" ["fragment"]=> string(31) "39;2s&key3=vals&apos;3#fragment" } expected output (unless documented): array(4) { ["scheme"]=> string(4) "http" ["host"]=> string(11) "example.com" ["path"]=> string(21) "/key1=val1&key2=vals&#39;2s&key3=vals&apos;3" ["fragment"]=> string(31) "fragment" } ------------------------------------------------------------------------ [2012-01-21 22:11:00] frozenfire@php.net Could you please provide a test script showing the behaviour you're describing. Based on what you've written, I do not know what needs to be documented. ------------------------------------------------------------------------ [2012-01-19 00:30:37] buccinator at gmail dot com Description: ------------ note: parse_url() will fragment with #[0-9]+; type encodings within the query Expected result: ---------------- that the filter be less greedy, or the function include this behaviour in the documentation ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60797&edit=1

« previous php.doc.bugs (#7858) next »