Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] php a przyjazne URL'e
bl4ck_b0x
post 10.12.2007, 20:20:46
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


Witam.

Ostatnio wpadłem na pomysł otworzenia ciekawego serwisu (z przyczyn oczywistych nie powiem na czym będzie polegał) winksmiley.jpg No ale dalej... chodzi mi o to, że będą mi potrzebne tzw. "przyjazne URLe" ze względu na wypozycjonowanie strony. Chciałbym aby to wyglądało tak jak np. w phpbb by przemo + spider friendly smile.gif czyli nazwa tematu jest w GET (pasku adresu) smile.gif Zastanawia mnie jak to ma działać... czy tzw. TEMAT (nazwijmy to właśnie tak wzorując się na PHPBB) ma być pobierany z bazy, następnie przypisywany do np. $_GET['nazwa_tematu']?

Bardzo prosiłbym o wskazówki...
pozdrawiam

Ten post edytował JaRoPHP 13.12.2007, 20:08:33
Powód edycji: Dodanie tagu.
Go to the top of the page
+Quote Post
webdice
post 10.12.2007, 20:23:14
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj o mod_rewrite.
Go to the top of the page
+Quote Post
bl4ck_b0x
post 10.12.2007, 20:38:45
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


no tyle to i ja wiem, wiem że to jest za to odpowiedzialne ale chodzi mi o odwołanie do konkretnego artykułu odnośnie tych URLi.. winksmiley.jpg takiego który pomoże mi to zrozumieć i napisać coś własnego smile.gif
Go to the top of the page
+Quote Post
webdice
post 10.12.2007, 20:54:58
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




To pewnie też wiesz -> google.pl
Go to the top of the page
+Quote Post
Regyam
post 10.12.2007, 21:10:38
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 8.04.2007

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


tobie pewnie chodzi o sformatowanie tego GETu zeby wygladal na przyjazny czyli cos takiego:
Sprzedam dużą działkę!
Nie wyszlo temat-Sprzedam dużą działkę!.html albo temat/Sprzedam dużą działkę!
tylko tak: temat-sprzedam_duza_działke.html
to wtedy wystarczy zrobic funkcje ktora zmienia spacje na _ etc a jak Ci nie o to chodzi to nie wiem tongue.gif
Go to the top of the page
+Quote Post
bl4ck_b0x
post 10.12.2007, 21:28:12
Post #6





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 21.11.2006

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


Regyam masz racje winksmiley.jpg O to mi chodziło smile.gif Czyli przy użyciu mod_rewrite usunąć całkiem "index.php" a następnie pozamieniać wszystkie znaki (w tym spacje na np. _) i wstawić to do GET'a?
Go to the top of the page
+Quote Post
dadexix
post 10.12.2007, 21:48:01
Post #7





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


musisz pobrać z bazy jakiegoś stringa(tytuł strony), wywalić z niego spacje - dać podkreślenie - wywaliś pl, wstawić do GET'a i skonifgurować mod_rewrite tak by nie przejmował się tą częścią która jest tytułem.. i ów koniec filozofi:D


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
-polop-
post 11.12.2007, 08:58:03
Post #8





Goście







Ja zamiast stworzenia linków w postaci:
Kod
temat-sprzedam_duza_działke.html

sugerowałbym umieszczenie w nim identyfikatora, np.
Kod
temat-1-sprzedam_duza_działke.html

Następnie wyszukiwanie powinno odbywać się nie na podstawie stringa "sprzedam_duza_działke" tylko liczby całkowitej (identyfikatora) 1. Dlaczego?
- wyszukiwanie po liczbach jest zdecydowanie szybsze niż po stringach
- wyobraź sobie sytuację, że dwóch userów dopisuje ogłoszenie "Sprzedam dużą działkę". Przy wyszukiwaniu po stringu skrypt się sypnie, natomiast używając identyfikatorów wszystko będzie działało poprawnie.
Jedynym minusem (ale można o to zadbać) jest to, że linki np.
Kod
temat-1-sprzedam_duza_działke.html
temat-1-kupie_mala_altanke.html

będą prowadziły do tego samego tematu.
Go to the top of the page
+Quote Post
templar
post 11.12.2007, 09:53:44
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.09.2006
Skąd: Poland

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


A ja bym jednak zrobił jeszcze inaczej.

Wyszukiwanie dajesz po stringu, ale w tabeli bazy dodajesz kolumnę np. topic_url, która zawiera przekonwertowany string topicu - bez polskich znaków, spacji i pojechany np. strtolowerem. Następnie zakładasz na nią indeks i wtedy wyszukiwanie będzie błyskawiczne, bo z tego co mi wiadomo tabela z topicami w phpbb nie ma żadnego innego indeksu poza ID, ale być może się mylę. Indeksy bardzo przyspieszają pracę i wyszukiwanie danych, należy pamiętać, że silnik bazy danych "musi mieć co robić", oczywiście utrzymanie indeksów to też jakiś koszt, ale to dopiero zaczyna być problemem przy 4-5-10 indeksach i 10-20 tabelach powyżej 500 000 - milion wierszy.

No i przy dodawaniu topica najpierw go konwertujesz do takiej postaci jak wyżej, a następnie sprawdzasz w tabeli, czy taki topic_url już istnieje. Jeżeli istnieje, to dodajesz na końcu "2", i masz sprzedam_dzialke2.html, a jesli sa 2 takie tematy to je zliczasz i dajesz 3 itp itp.

Potem tylko odczytujesz przy generacji linków pole topic_url i generujesz link topic_url.'.html dla przykładu no i w mod_rewrite regułka i drobna zmiana skryptu i ot jest.

pozdro
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 Wersja Lo-Fi Aktualny czas: 7.07.2025 - 03:05