Functie: URL maken
Ik heb een functie gemaakt, die heel makkelijk een URL kan maken met alle benodigde GET variabelen erin. Eerst worden de GET variabelen goed omgezet in een array, en dan aan een omgezette URL toegevoegd. De GET variabelen kunnen op drie manieren in de URL komen te staan: 1). Ze worden meegestuurd in de functie: url(array('var' => 8)); 2). Ze worden meegestuurd in de functie (op de plek waar word neergezet naar welke pagina de URL moet): url(, 'jouwpagina.php?var=8'); 3). Ze komen uit de pagina waar je nu bent. De derde manier komt alleen automatisch als je naar dezelfde pagina linkt. Bij een andere pagina zou je dit moeten invullen voor hetzelfde resultaat: url($_GET, 'jouwpagina.php'); Ook kan deze functie zonder input een URL samenstellen, alleen dat is dan wel de URL waar je op bent (dit is dus bijna hetzelfde als $_SERVER['REQUEST_URI'], alleen dan nét iets anders) Ik hoop dat het wat is, het is ook weer niet zo nuttig, maar het kan handig zijn. ONTHOUD: Deze functie maakt alleen een URL en geen hyperlink (zodat je zelf nog andere variabelen kunt invullen (zoals de target="")
<?php
function url($replace = array(), $url = 'x') {
// De array $geturl zetten, deze zal later alle GET waarden bevatten
$geturl = array();
// De URL geschikt maken, zodat deze gebruikt kan worden (als er geen URL is ingevuld, dan word de huidige URL gebruikt)
$url = $url == 'x' ? $_SERVER['PHP_SELF'] : $url;
$explurl = explode('?', $url);
$url = $explurl[0];
$url = basename($url);
// Als de opgegeven URL hetzelfde is als de URL van de pagina waar je nu op bent, dan zullen alle GET waarden
// ... ook weer meedoen. Als je dit ook wilt bij een URL die niet gelijk is, gebruik dan de functie: url($_GET);
if ($url == basename($_SERVER['PHP_SELF'])) {
global $_GET;
$geturl = $_GET;
}
// Hier worden de GET variabelen uit de opgegeven link gehaalt (stel je vult pagina.php?var=8 in,
// ... dan komt die var=8 ook weer voor in de nieuwe URL)
if (!empty($explurl[1])) {
$explurl2 = explode('&', $explurl[1]);
foreach ($explurl2 as $value) {
$explvalue = explode('=', $value);
$geturl[$explvalue[0]] = $explvalue[1];
}
}
// Hier worden alle GET variabelen die ingevuld werden als GET variabelen omgezet.
foreach ($replace as $key => $value) {
$geturl[$key] = $value;
}
// Hier dan, eindelijk de final touch: Alle GET variabelen worden aan de URL toegevoegd.
$newurl = $url;
foreach ($geturl as $key => $value) {
$newurl .= !empty($key) && !empty($value) ? htmlentities(($newurl == $url ? '?' :'&').$key.'='.urlencode($value)) : '';
}
return $newurl;
}
?>
Reacties
0