Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]skracanie linków
Forum PHP.pl > Forum > PHP
piotr94
witam
mam pytanie, czy wiecie na jakiej zasadzie działają mechanizmy skracania linków??
np. http://tnij.org/
czy one po prostu zapisują w bazie danych stronę i kod jej odpowiadający?
z góry dzięki za pomoc
patryczakowy
Działa to zapewne tak: w bazie danych zapisywany jest adres strony + skrót
a później tylko zapytanie do wyciągnięcia adresu strony i przekierowanie na nią
piotr94
też tak sądzę, ale to wymaga:
a - dużej bazy
b - liczba linków jest ograniczona długością ciągów
macie może jakieś inne pomysły jak to działa?
patryczakowy
jak dużej bazy questionmark.gif jedna tabela i trzy kolumny id, skrot, link to jest duża baza questionmark.gif? właściwie "skrot" może być kluczem bo nie może się powtarzać czyli jak się uprzesz to będziesz miał dwie kolumny. Napisanie samego skryptu to też chwila roboty.
Pilsener
Działa to prosto, dodajesz link do bazy:
1 | link 1
2 | link 2

Potem wysyłane jest żądanie do bazy, typu tnij/1 na podstawie którego pobierany jest link 1 i user jest przekierowany na ten adres. Id można upiększyć, przepuszczając np. przez autorski base64_costamkode. A rozmiar bazy? Nawet kilka milionów rekordów w takiej tabeli + prosty select to tyle co nic, a do dyspozycji masz cały wachlarz mechanizmów optymalizujących:
1. Cachowanie żądań
2. Podział bazy na mniejsze
- np. alfabetycznie
- wg czasu dodania linku
- wg liczby rekordów (np. gdy dochodzimy do miliona zakładamy new table)
- archiwizacja mało popularnych linków (np. w nocy sprawdzasz, że link do Twojej strony jest przekierowywany raz na ruski miesiąc i przenosisz go do archiwum, będzie działał, ale wolniej)
3. Inne metody
- np. jeśli dysponujesz dobrym i dużym dyskiem rezygnujesz z bazy w ogóle tylko tworzysz plik z przekierowaniem, do którego odnosi się dany adres, proste i szybkie, nie?
- wyobraźni użyj smile.gif
piotr94
okej, dzięki za pomoc, rzeczywiście rozmiar takiej bazy nie będzie zbyt duży, bo to same pola tekstowe
a co powiecie na tak zwane ukrywanie prawdziwego adresu (maskowanie całkowite)?
zwykle robią to na ramkach (frameset lub iframe)
swoją drogą przecież nigdy adres nie zostanie całkowicie zamaskowany (zawsze zostaną url'e obrazków itp.)
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.