Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewite][php] funkcja przepisujaca
wiiir
post
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


heja.. znalazlem taka funkcje

  1. <?php
  2. function rewrite_url_filter($data)
  3. {
  4. $link = $data[0];
  5. $link = ereg_replace('"$', '', $link);
  6. $link = explode('="', $link);
  7. $_link = $link[0];
  8. $link = $link[1];
  9. //reguly
  10. //trzy zmienne
  11. $link=preg_replace('#index.php\?zmienna1=([0-9]*)&zmienna2=([0-9]*)&zmienna3=([0-9]*)#', 'index-\\1-\\2-\\3.htm',$link);
  12. //dwie zmienne
  13. $link=preg_replace('#index.php\?zmienna1=([0-9]*)&zmienna2=([0-9]*)#', 'index-\\1-\\2.htm',$link);
  14. //jedna zmienna
  15. $link=preg_replace('#index.php\?zmienna1=([0-9]*)#', 'index-\\1.htm',$link);
  16.  
  17. $link=preg_replace('#index.php#','index.htm',$link);
  18. $link=preg_replace('#index.php#','index.htm',$link);
  19.  
  20. $link=preg_replace('#index.php#','index.htm',$link);
  21. $link=preg_replace('#rewrite_test.php#','rewrite_test.htm',$link);
  22.  
  23. $link = $_link.'="'.$link.'"';
  24. return $link;
  25. }
  26. function rewrite_ob_filter($string)
  27.  
  28. {
  29. return preg_replace_callback('/(href|src|action)\s*=\s*"[^"]+"/', 'rewrite_url_filter', $string);
  30. }
  31.  
  32. ob_start('rewrite_ob_filter');
  33. ?>


nie jestem autorem wiec podaje link http://forum.sprawnymarketing.pl/pozycjono...zyjazne-url-22/

no i teraz pytenie... poniewaz zaczynam budowac nowy portal zastanawialem sie na "przyjaznymi linkami" ze wzgledu na pozycjonowanie, serwis bedzie dosyc rozbudowany wiec pomyslalem ze taki automat bylby dobry .. latwo mozna dodac nowe regoly, zmieniac postac linku z index-1-2-3-4-5.html na index/1/2/3/4/5/ itd itp
no i teraz pytanie czy warto cos takiego zastosowac (mi sie to podoba), albo czy macie podobne skrypty lepiej dzialajace z ktorymi moglibyscie sie podzielic
Go to the top of the page
+Quote Post
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
taki automat bylby dobry
- zapomnij. To prowizorka i amatorszczyzna, statyczne linki, które potem są podmieniane przez *_replace? A PHP to od czego masz? Powinieneś napisać funkcję/klasę generującą linki:
  1. function linki($parametry,$czy_przyjazne='0'){
  2. //kod tworzący linki
  3. }
- funkcja ma utworzyć link na podstawie tablicy parametrów oraz dodatkowego parametru, który mówi o tym, czy link ma być taki:
strona.pl/index.php?page=filmy/sensacyjne/zabili;go;i;uciekl.html
czy taki:
strona.pl/filmy/sensacyjne/zabili;go;i;uciekl.html

W ten sposób łatwo możesz zmienić sposób generowania linków bez ich przepisywania, co jest bardzo istotne dla elastyczności projektu, user powinien mieć opcję w PA linki nice on/off i tyle a programista możliwość łatwej modyfikacji sposobu generowania linków oraz ich tworzenia, wystarczy wrzucić tablicę parametrów do funkcji a ona zajmie się utworzeniem odpowiedniego odnośnika.

Podobnie odbieranie parametrów z linków ma się odbywać dynamicznie, niezależnie od tego, czy link jest przyjazny, nieprzyjazny, modyfikowany czy inny do silnika ma trafić przejrzysta tablica parametrów z wejścia. Chciałbyś się babrać w kilkaset reguł w .htaccess, przepisanie kilkunastu tysięcy statycznych linków + jeszcze zmiana kilkuset linijek kodu PHP bo trzeba zmienić coś w serwisie? Statyczne linki to samo zło.
Go to the top of the page
+Quote Post
wiiir
post
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


ale wydaje mi sie ze i tak wydzie na to samo minus z ta opcja wlaczania i wylaczania funkcji.. bo przeciez w htaccess i tak trzeba zrobic tyle regol ile postaci linkow bedzie mozna wygenerowac przez ta funkcje

w sumie jeszcze nie bardzo wiem jak mogla by wygladac ta funkcja, nie mam na to pomyslu zeby byla uniwersala i latwa w uzyciu:/
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
przeciez w htaccess i tak trzeba zrobic tyle regol ile postaci linkow bedzie mozna wygenerowac przez ta funkcje
- a kto Ci naopowiadał takich bajek? Ucz się od lepszych i bierz przykład z drupala:
Kod
RewriteRule ^(.+).html$ ?page=$1 [L]
- przepisujesz wrzystkie adresy do jednej zmiennej - $_GET['page'], następnie Twoja klasa/funkcja do obsługi wejścia obrabia ten adres i zwraca gotową tablicę parametrów. Możesz zmieniać zarówno same adresy, jak i ich interpretację bez dotykania .htaccess, adresy obrabiasz po stronie PHP (co jest szybsze i wygodniejsze) a nie przy pomocy mod_rewrite.
Go to the top of the page
+Quote Post
wiiir
post
Post #5





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


jednym slowem wysylam 234/23/sd/asd.html

a potem funkcja rozbijam ten syf i dostaje tablice 4 elementowa ze zmiennymi tak?

Ten post edytował wiiir 24.02.2010, 15:19:58
Go to the top of the page
+Quote Post
Pilsener
post
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Tak. Ale nie musimy się ograniczać do /, możemy przecież wykorzystać:
; - oddziela słowa kluczowe
, - oddziela parametry
_ - numer strony
- podział sekcji
- inne?
To już zależy od Ciebie tylko winksmiley.jpg
Go to the top of the page
+Quote Post
wiiir
post
Post #7





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


Tak tak, dzieki ze mnie naprowadziles smile.gif, woczraj wieczorkiem zaczalem od takich prostych i fajnie to dziala
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 08:49