Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne linki od strony PHP
Forum PHP.pl > Forum > PHP
sylen
Witam,
Posiadam stronę, na której do chwili obecnej wszystkie linki były w postaci index.php?modul=artykuly&id=13542.
Chciałbym zastosować przyjazne linki. Wiem jak to wygląda od strony .htaccess, ale nie wiem jak to wygląda od strony php.
Czy aby zamienić wszystkie linki w kodzie php na format 'artykuly/zakup-sprzetu-komputerowego' muszę zrobić to ręcznie czy istnieje na to inny sposób.
Chciałbym mieć także możliwość wyboru, czy przyjazne linki będą włączone czy nie, więc ręczna zmiana odpada.
bartg
Mozesz zamienic w httaccess zamienic aby bylo np. /Artykuly/13542/index.html
a w php muszisz odpowiedni zamieniac linki. Jeśli nie chce ci się samemu, to daj preg_replace w funkcji ob_start();
poczytaj o tym na manualu smile.gif
sylen
Nie chodzi o to, że nie chce mi się samemu. Chcę w przyszłości mieć wybór między zwykłymi a przyjaznymi linkami. Za każdym razem, kiedy będzie potrzebna zmiana linków nie będę przeglądał kilkudziesięciu plików w celu ręcznej zmiany.
Zobaczę co da się zakombinować z ob_start();
Pilsener
Po mojemu to robisz klase/funkcję generującą odpowiedni link na podstawie tablicy parametrów:
  1. <?php
  2. $tablica['host']='http://php.pl';
  3. $tablica['plik']='index.php';
  4. $tablica['get']['act'] = 'post'
  5. $tablica['get']['do'] = 'reply_post'
  6. ?>
, klasa/funkcja ma Ci zwracać link:
  1. <?php
  2. $url = generuj_link($tablica,$parametry);
  3. echo '<a href="'.$url.'">Link</a>';
  4. ?>
- taka klasa/funkcja może mieć gigantyczne możliwości - zamiast tablicy może parsować np. link zwykły na przyjazny albo link przyjazny na zwykły itp. itd.

Tak jest moim zdaniem optymalnie, bo możesz łatwo zmienić silnik generujący linki, zamiast poprawiać ileś tam linków w kodzie. Zmianę linków na zwykłe możesz uzależnić od parametru pobieranego z plików/bazy konfiguracji.
bartg
Błagam, jest tyle wygodnych sposobów smile.gif

  1. <?php
  2. echo '<a href="'.url('index.php?get=1&get2=2#ble').'">News 1 w kategori 2</a>';
  3. ?>

A w funkcji url, to co podajesz w argumencie rozbijasz na host, plik, gety i w oparciu o to tworzysz albo przyjazny link albo zwykły smile.gif

Also mozesz tez dodac na początku
  1. <?php
  2. function callback($buffer)
  3. {
  4.  return (str_replace("index.php", "index.html", $buffer));
  5. // tyle ze ty musisz dac pregi zeby to jakos dzialało :)
  6. }
  7.  
  8. ob_start("callback");
  9. ?>
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.