Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Domyślne wartości w Routingu PHP
lukasz91
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Witam,
piszę klasę do routingu PHP, czyli skrypt ma wybrać odpowiedni kontroler i metodę na podstawie przetwarzania adresu URL. Za bardzo nie wiem jak rozwiązać jeden problem.

Mam taki wzorzec, z którym porównuję aktualnie przetwarzany link:
Kod
http://domena.pl/demo/<id>

Przy wpisaniu:
Kod
http://domena.pl/demo/5

Wszystko jest ok. Natomiast nie wiem jak uzupełnić URL domyślnymi wartościami, czyli mając:
Kod
http://domena.pl/demo/

skrypt powinien stworzyć url np. tak:
Kod
http://domena.pl/demo/1


Ten post edytował lukasz91 17.04.2014, 13:32:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jackraymund
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

Ostrzeżenie: (0%)
-----


Niezbyt się zagłębiałem w ten skrypt.
Lecz mógłbyś samemu sobie zrobić router i wszystko po kolei zrobić.
  1. <?php
  2. class SmartUrl {
  3. public $args = array();
  4.  
  5. public function __construct($FILE) {
  6. $url_all = trim($_SERVER['REQUEST_URI'],'/');
  7. $file_name = str_replace(__DIR__ . DIRECTORY_SEPARATOR,null,$FILE);
  8. $dir = str_replace($file_name,null,$_SERVER['SCRIPT_NAME']);
  9. $dir = substr($dir,1);
  10. $url_all = str_replace($dir,null,$url_all);
  11. $this->args = explode('/',$url_all);
  12. }
  13. }
  14. ?>
  15. $SmartUrl = new SmartUrl(__FILE__);
  16. $SU = $SmartUrl->args;
  17. ?>

Prosta klasa, zmienna $SU dla linku domena/demo/1
Powinna mieć $SU[0] = demo, $SU[1] = 1
Dla domena/demo/
$SU[0] = demo, $SU[1] nie ustawi tej wartości

Wtedy tylko zrobić if'y.
np.
  1. if($SU[0] == 'demo'){
  2. //wykonajmy teraz warunek co zrobić gdy niema następnej wartości
  3. if(!isset($SU[1]){
  4. $strona = 1;
  5. }else{
  6. $strona = $SU[1];
  7. }
  8. (wczytujemy strone)
  9.  
  10. }

Jak potrzebujesz validacji, to nie problem ją napisać, poduczysz się może czegoś nowego.
Tutaj masz świetny tutorial wyrażeń regularnych http://www.gajdaw.pl/php/wyrazenia-regular.../print.html#R23
A jak nie to zostają ci funkcje str albo is_ (np. is_numeric is_float itd.)

Ten post edytował jackraymund 17.04.2014, 14:44:17
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 18:36