note 120151 added to function.parse-url
| From: | mpyw | Date: | Sat, 12 Nov 2016 01:35:36 +0000 |
| Subject: | note 120151 added to function.parse-url | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-207075@lists.php.net to get a copy of this message | ||
Yet another URL builder implementation:
<?php
function build_url(array $elements)
{
$e = $elements;
return
(isset($e['host']) ? (
(isset($e['scheme']) ? "$e[scheme]://" : '//') .
(isset($e['user']) ? $e['user'] . (isset($e['pass']) ?
":$e[pass]" : '') . '@' : '') .
$e['host'] .
(isset($e['port']) ? ":$e[port]" : '')
) : '') .
(isset($e['path']) ? $e['path'] : '/') .
(isset($e['query']) ? '?' . (is_array($e['query']) ?
http_build_query($e['query'], '', '&') : $e['query']) :
'') .
(isset($e['fragment']) ? "#$e[fragment]" : '')
;
}
?>
For convenience, you can pass $elements['query'] as array.
Example:
<?php
$elements = [
"host" => "example.com",
"user" => "root",
"pass" => "stupid",
"path" => "/x/y/z",
"query" => [
"a" => "b",
"c" => "d",
],
];
echo build_url($elements);
?>
will output
//root:stupid@example.com/x/y/z?a=b&c=d
----
Server IP: 72.52.91.14
Probable Submitter: 58.146.6.197
----
Manual Page -- http://php.net/manual/en/function.parse-url.php
Edit -- https://master.php.net/note/edit/120151
Del: integrated -- https://master.php.net/note/delete/120151/integrated
Del: useless -- https://master.php.net/note/delete/120151/useless
Del: bad code -- https://master.php.net/note/delete/120151/bad+code
Del: spam -- https://master.php.net/note/delete/120151/spam
Del: non-english -- https://master.php.net/note/delete/120151/non-english
Del: in docs -- https://master.php.net/note/delete/120151/in+docs
Del: other reasons-- https://master.php.net/note/delete/120151
Reject -- https://master.php.net/note/reject/120151
Search -- https://master.php.net/manage/user-notes.php