note 97496 added to function.parse-url
| From: | solenoid at example dot com | Date: | Thu, 22 Apr 2010 23:05:14 +0000 |
| Subject: | note 97496 added to function.parse-url | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-168528@lists.php.net to get a copy of this message | ||
Here's a piece of code that modifies, replaces or removes the url query. This can typically
used in paging situations where there are more parameters than the page.
<?php
function modify_url($mod)
{
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$query = explode("&", $_SERVER['QUERY_STRING']);
// modify/delete data
foreach($query as $q)
{
list($key, $value) = explode("=", $q);
if(array_key_exists($key, $mod))
{
if($mod[$key])
{
$url = preg_replace('/'.$key.'='.$value.'/',
$key.'='.$mod[$key], $url);
}
else
{
$url = preg_replace('/&?'.$key.'='.$value.'/', '',
$url);
}
}
}
// add new data
foreach($mod as $key => $value)
{
if($value && !preg_match('/'.$key.'=/', $url))
{
$url .= '&'.$key.'='.$value;
}
}
return $url;
}
// page url: "http://www.123.com/page.php?p=5&show=list&style=23"
$url = modify_url(array('p' => 4, 'show' => 'column'));
// $url = "http://www.123.com/page.php?p=4&show=column&style=23"
?>
----
Server IP: 62.2.182.223
Probable Submitter: 83.219.99.68
----
Manual Page -- http://www.php.net/manual/en/function.parse-url.php
Edit -- https://master.php.net/note/edit/97496
Del: integrated -- https://master.php.net/note/delete/97496/integrated
Del: useless -- https://master.php.net/note/delete/97496/useless
Del: bad code -- https://master.php.net/note/delete/97496/bad+code
Del: spam -- https://master.php.net/note/delete/97496/spam
Del: non-english -- https://master.php.net/note/delete/97496/non-english
Del: in docs -- https://master.php.net/note/delete/97496/in+docs
Del: other reasons-- https://master.php.net/note/delete/97496
Reject -- https://master.php.net/note/reject/97496
Search -- https://master.php.net/manage/user-notes.php