![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie wszystkich,
Na tym forum jestem nowy, wiec w razie w prosze o wyrozumialosc ![]() Przechodzac do meritum... . Zaprojektowalem klase(prototyp), ktora ma byc alternatywnym rozwiazaniem do friendly url i mod_rewrite. Moje pytanie, jak Wy to widzicie od storny praktycznej? moze ktos juz stosowal podobne rozwiazania? Mile widziane wszelkie uwagi i porady ![]() Htaccess CODE DirectoryIndex page page.php <Files page> ForceType application/x-httpd-php Options +MultiViews </Files> Klasa PageUrl: CODE <?php class PageUrl{ /** * Instancja klasy */ private $instance = null; /** * Nazwa subdomeny * * Jesli nie ma subdomeny to 0 * * @var string */ static public $subDomain = false; /** * Nazwa aktualnej podstrony * * @var string */ static public $page = null; /** * Lista parametry z urla * * @var array */ static public $allParamArray = array(); /** * Liczba parametrow w url * * @var integer */ static public $countAllParam = null; function __construct() { $this->instance = true; // Ustawianie subdomeny self::$subDomain = explode(\".\", $_SERVER[\'HTTP_HOST\']); if(count(self::$subDomain) >= 3) { self::$subDomain = self::$subDomain[0]; } else { self::$subDomain = false; } // Ustawianie listy parametrow z urla self::$allParamArray = explode( \'/\', substr( $_SERVER[\'PATH_INFO\'], 1) ); // Jesli ostani parametr jest pusty usun go if(end(self::$allParamArray) == \'\') { array_pop(self::$allParamArray); } // Zliczanie parametrow self::$countAllParam = count(self::$allParamArray); foreach (self::$allParamArray as $key => $value) { if(!Validator::GETValid($value)) { self::$allParamArray[$key] = \'NotValid\'; } } // Ustawianie nazwy podstorny self::$page = self::$allParamArray[0]; } /** * Pobiera pojedynczy parametr * * @param string $number * @return Array */ static public function GetParamValue($number) { return self::$allParamArray[$number]; } /** * Pobiera pary parametor Name => Value * * @param string $which * @return array * @return false */ static public function GetParamNameValue($which = null) { if(empty($which)) { for($i = 0; $i <= self::$countAllParam-1; $i++) { if($i == 0) { $ParamNameAsValueArray[\'page\'] = self::$allParamArray[$i]; } else { if(!empty(self::$allParamArray[$i]) && !empty(self::$allParamArray[$i+1])) { $ParamNameAsValueArray[self::$allParamArray[$i]] = self::$allParamArray[$i+1]; $i++; } } } return $ParamNameAsValueArray; } else { for($i = 1; $i <= self::$countAllParam; $i+=2) { if(self::$allParamArray[$i] == $which && !empty(self::$allParamArray[$i+1])) { $ParamValue = self::$allParamArray[$i+1]; } } if(!empty($ParamValue)) { return $ParamValue; } else { print \'Nie istnieje wartosc dla parametru \'.$which; return false; } } } /** * Tworzenie linkow * * @param string $pagename * @param string/array $parameters * @return string */ static public function CreateUrl($pagename, $parameters = null) { $url .= \'/oop/page/\'.$pagename.\'/\'; if(is_array($parameters)) { foreach ($parameters as $key => $value) { if(!empty($key) && !empty($value)) { $url .= $key.\'/\'.$value.\'/\'; } } } else { print \'Link zdupiony\'; // Dopisac dla stringa } return $url; } } ?> I przykladowe wykorzystanie: CODE <?php new PageUrl(); print \"Tablica wszystkich parametrow:<br>\"; print_r(PageUrl::$allParamArray); print \"<br>Tablica wszystkich parametrow uporzadkowanych key => value<br>\"; print_r(PageUrl::GetParamNameValue()); print \"<br>Aktualna strona:<br>\"; print PageUrl::$page; print \"<br>Pobieranie Value dla podanego Key:<br>\"; print(PageUrl::GetParamNameValue(\'jakisparametr\')); print \"<br>Pobranie drugiego elementu z tablicy parametrow:<br>\"; print_r(PageUrl::GetParamValue(1)); print \"<br>Tworzenie linka:<br>\"; $tab = array(\'Pokaz\' => \'Najnowsze\', \'Od\' => \'10\', \'Do\' => \'20\'); print PageUrl::CreateUrl(\'Artyklu\', $tab); ?> Ten post edytował wwwhisky 27.02.2009, 20:50:21 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 05:43 |