Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]przepisywanie adresu (Przyjazne URL za pomoca php)
Forum PHP.pl > Forum > Przedszkole
matyskiewicz
Mój niedobry administrator nie udostępnia na swym serwerze opcji umożliwiającej wykorzystanie jednego z jednego z podanych na portalu php.pl przykładów 'upiększających' URL. Czy istnieje możliwość przepisania URLu za pomocą php? Prosiłbym o przykład na konkretnym URLu:

artykul.php?dzial=felietony&nr=123&strona=5 => artykul,felietony,123,5.html

gdzie pochyłe częsci adresu są zczytywane z bazy.
Dziękuję za okazane zainteresowanie, i ewentualna pomoc. Pozdrawiam
Speedy
  1. <?php
  2. function niceUrl()
  3. {
  4. $request = explode('?',$_SERVER['REQUEST_URI']);
  5. $vars = explode(',',$request[1]);
  6. return $vars;
  7. }
  8.  
  9. $tablica = niceUrl();
  10.  
  11.  /*
  12.  po uruchomieniu adresu: artykul.php?felietony,123,5
  13.  do tablicy zostaną załadowane odpowiednie dane
  14.  */
  15.  
  16. $dzial = $tablica[0];
  17. $nr = $tablica[1];
  18. $strona = $tablica[2];
  19. ?>


Jak chcesz mieć przecinek też zamiast .php? To możesz utworzyć plik artykul i w pliku .htaccess zdefiniować jego typ jako aplikację php.

Kod
<Files artykul>
ForceType application/x-httpd-php
</Files>


Wtedy usuniesz z powyższego skryptu część rozbijającą ciąg na tablicę z separatorem "?".

Funkcja może wtedy wyglądać tak:

  1. <?php
  2. function niceUrls2($baseFile = 'artykul')
  3. { 
  4.  
  5. if(strstr($_SERVER['REQUEST_URI'],$baseFile))
  6. {
  7. $params = explode($baseFile.',',$_SERVER['REQUEST_URI']);
  8. }
  9.  
  10. $params = explode(',',$params[1]);
  11.  
  12.  return $params;
  13. }
  14. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.