Autor Zpráva
candiess
Profil
Nedávno mě napadala jedna funkce, nazval jsem ji geturl(); spočívá v tom, že mění dynamické url na statické
function geturl($modul,$task=false,$at1=false,$at2=false,$at3=false) {
$seo = false;
$local = ($_SERVER['SERVER_NAME']=="localhost")?"/student":"";


if($seo) {

$url = "http://".$_SERVER['SERVER_NAME']."$local/$modul/";

if($task) {
$url .="$task/";
}
if($at1) {
$url .="$at1/";
}
if($at2) {
$url .="$at2/";
}
if($at3) {
$url .="$at3/";
}

} else {

$url = "http://".$_SERVER['SERVER_NAME']."$local/index.php?modul=$modul";

if($task) {
$url .="&task=$task";
}
if($at1) {
$url .="&at1=$at1";
}
if($at2) {
$url .="&at2=$at2";
}
if($at3) {
$url .="&at3=$at3";
}
}
return $url;
}


když potom zavolám geturl("clanky","editovat");
tak pokut je ve funkci $seo=true;
adresa bude vypadat http://www.adresa.cz/clanky/editovat/
a pokud je $seo=false, pak bude http://www.adresa.cz/index.php?modul=clanky&task=editovat

co na ní říkáte.? napište mi co byjste upravili, díky :)
Joker
Profil
candiess:
Pokud jde o návrh aplikace, já bych to udělal jinak.
Místo např. jedna/dva/tri ~ index.php?modul=jedna&task=dva&at1=tri bych udělal adresy: jedna/dva/tri ~ index.php?url=jedna/dva/tri.
A místo kupy parametrů bych dal pole.

Pak by se ta funkce dala napsat takhle:
function geturl($params) 
{
  $url = "http://".$_SERVER['SERVER_NAME']."/";
  if($_SERVER['SERVER_NAME']=="localhost") $url .= "student/";
  if(!$seo) $url .= "index.php?url=";
  $url .= implode("/", $params);
}
Alphard
Profil
A místo kupy parametrů bych dal pole.
Občas se hodí obojí. func_get_args(), is_array()

candiess:
Máte k tomu inverzní funkci? Pevně zadané "/student" není pěkné. V nejhorším případě načítat z konfigurace.
candiess
Profil
Alphard:
to student tam mám kvuli localhostu, jelikož vedu WAMP server, jinačí řešení se nenašlo, to student/ by si každý mohl upravit podle sebe :)

Joker:
je to taky jedno z řešení, děkuji za nápad :) zkusím na tom ještě zapracovat :)
Joker
Profil
candiess:
to student/ by si každý mohl upravit podle sebe :)
A proto by to mělo být konfigurovatelné.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0