Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Diskusia k článku

Dynamická tvorba URLZobraziť článok

CPT_Cook
Dátum a čas 20. 02. 2009, 22:46

Jooj toto som práve hladal:)

Naspäť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

Dynamická tvorba URL

Ešte sa nájdu weby, kde nie sú linky optimalizované do „pekného“ a pre vyhľadávače pochopiteľného tvaru. V takýchto prípadoch je dobré mať naporúdzi funkciu, ktorá dokáže na základe zadaných parametrov dynamicky linky generovať.

function getWholeUrl($params=array(),$delparams=array(),$separator='&') {
 
   $makeParams = array_merge($_GET, $params); // spoji obe polia starych (_get) a novych (params) parametrov dokopy.
 
   if (sizeof($delparams)>0) {
        foreach ($delparams as $key => $val) { // z pola vymaze dane parametre
                unset($makeParams[$key]);
        }
   }
 
   $url = $_SERVER['PHP_SELF']."?"; // vytvori URL
        $url .= http_build_query($makeParams,'',$separator);
        return $url;
 
}

Základom funkcie je php funckia array_merge, ktorá spojí polia $_GET a $params. Pole $params obsahuje hodnoty, ktoré majú byť do URL vložené, naopak pole $delparams obsahuje tie, ktoré majú byť z URL odstránené. Výsledok je vygenerovaný funkciou http_build_query (dostupná iba v PHP 5 + ), ktorá zabezpečí okrem iného unikátnosť premenných, nestane sa teda, že by bola adresa v štýle

http://www.domena.sk/?a=123&a=456&a=789 (dvakrát $a parameter)

Zápis funkcie vyzerá takto

// do URL sa pridá ako get parameter ?parameter1=hodnota
echo getWholeUrl(array("parameter1"=>"hodnota"));
 
// do URL sa pridá ako get parameter ?parameter1=hodnota a vymaže sa GET parameter vymazat parameter
echo getWholeUrl(array("parameter1"=>"hodnota"),array("vymazatparameter"=>""));
RSS