note 82948 deleted from function.parse-url by cmb

From: Date: Sun, 06 Oct 2019 08:19:46 +0000
Subject: note 82948 deleted from function.parse-url by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-212511@lists.php.net to get a copy of this message
Note Submitter: jbr at ya-right dot com ---- This function never works the way you think it should... Example.... <?php print_r ( parse_url ( 'me:you@sub.site.org/pear/validate.html?happy=me&sad=you#url' ) ); ?> Returns... Array ( [scheme] => me [path] => you@sub.site.org/pear/validate.html [query] => happy=me&sad=you [fragment] => url ) Here my way of doing parse_url <?php function parseUrl ( $url ) { $r = '!(?:(\w+)://)?(?:(\w+)\:(\w+)@)?([^/:]+)?'; $r .= '(?:\:(\d*))?([^#?]+)?(?:\?([^#]+))?(?:#(.+$))?!i'; preg_match ( $r, $url, $out ); return $out; } print_r ( parseUrl ( 'me:you@sub.site.org/pear/validate.html?happy=me&sad=you#url' ) ); ?> Returns... Array ( [0] => me:you@sub.site.org/pear/validate.html?happy=me&sad=you#url [1] => [2] => me [3] => you [4] => sub.site.org [5] => [6] => /pear/validate.html [7] => happy=me&sad=you [8] => url ) Where as... out[0] = full url out[1] = scheme or '' if no scheme was found out[2] = username or '' if no auth username was found out[3] = password or '' if no auth password was found out[4] = domain name or '' if no domain name was found out[5] = port number or '' if no port number was found out[6] = path or '' if no path was found out[7] = query or '' if no query was found out[8] = fragment or '' if no fragment was found

« previous php.notes (#212511) next »