| Rubrika Php / mysql
Diskusia k článku
Dynamická tvorba URL
CPT_Cook
20. 02. 2009, 22:46
Jooj toto som práve hladal:)
naspäť
Pridať komentár
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"=>""));

