Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sprawdzanie linku, Co będzie lepszym rozwiązaniem?
Babcia@Stefa
post 30.03.2008, 11:51:59
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Witam, mam problem który dotyczy optymalności skryptu...

Jak najlepiej sprawdzić czy adres URL pasuje do jakiegoś z tablicy?

Wiem ze wyrażenia regularne w pętli to wielka strata na jakości... tak więc jak tego dokonać?

  1. <?php
  2. $links = array('http://domena.pl/p/111', 'http://innadomena.com?123');
  3. ?>


@edit
Dodam jeszcze że skrypt ma być wykorzystany w własnym serwisie do pobierania plików z serwisów typu YouTube, Video Google.. (Serwisów obsługiwanych jest na dzien dzisiejszy z 20 ;d)

Dziękuję, Babcia@Stefa

Ten post edytował Babcia@Stefa 30.03.2008, 11:59:56


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
PawelC
post 30.03.2008, 12:11:27
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Ja mam takie rozwiązanie z youtube.com, może nie jest ono zbyt optymalne ale podczas dodawania linku do bazy sprawdza czy czasem niema takiego w bazie, jak jest to wywala jak niema to dodaje, i ta metoda jest według mnie dobra. Możesz również zapisywać adresy do pliku tekstowego i pobierać z niego do sprawdzenia czy adres już jest.

Możesz to również zrobić tak:
zliczyć ilość rekordów w tablicy i wpuścić to w pętle foreach albo for jak wolisz, a później tylko porównujesz na takiej zasadzie
  1. <?php
  2.  
  3. $links = array('1' => 'http://domena.pl/p/111', '2' => 'http://innadomena.com?123');
  4. $rekordy="wynik zliczania rekordów w tablicy";
  5. for($i = $rekordy; $i < $rekordy;$i++)
  6. {
  7. if($adres==$links[$i])
  8. { jakieś polecenie; 
  9. } else { jakieś polecenie;
  10. }
  11. }
  12. ?>


Oczywiście to najprostsze rozwiązanie.

Ten post edytował ExPlOiT 30.03.2008, 12:13:49
Go to the top of the page
+Quote Post
Babcia@Stefa
post 30.03.2008, 12:21:06
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Wiesz... linki z YouTube są zawsze inne.. nie będą zawsze "http://youtube.com" tylko zawsze będą zmienne..

Więc nic z tego co napisałeś... tak to ja też umiem...

Dziękuję, Babcia@Stefa


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
tomeksobczak
post 30.03.2008, 12:29:58
Post #4





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

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


Pliki z YouTube można akurat przechowywać tak jakby zawsze były takie same

http://uk.youtube.com/watch?v=xR360Y8O9VQ
http://youtube.com/watch?v=xR360Y8O9VQ
http://pl.youtube.com/watch?v=xR360Y8O9VQ

wszytkie 3 wyświetlą to samo tylko w innych językach także nawet nie trzeba przechowywać całego linku a jedynie "xR360Y8O9VQ" i zaznaczyć, że jest to youtube.

Nie wiem jak inne serwisy to robią ale daje 99.9%, że też można to w taki sposób załatwić a nie trzymać w bazie tony powtarzającego się tekstu. Wystarczy troche pogłówkować


--------------------
Go to the top of the page
+Quote Post
pyro
post 30.03.2008, 12:36:17
Post #5





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


ja proponuje się zapoznać z funkcją array_walk, bedziesz mogl dowolnie operowac, problem rozwiazany. smile.gif


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Babcia@Stefa
post 30.03.2008, 12:41:46
Post #6





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


A czy uśpienie parsera na sekundę pomoże odciążyć serwer podczas intensywnej pracy?
Np. bardzo dużo ludzi korzysta z strony i cała strona wolno się ładuje...
Czy za pomocą uśpienia na 1sec zyska się trochę wydajności? smile.gif

Np.
1. Sprawdzanie linku (pętla z wyrażeniami regularnymi!)
2. Sleep(1)
3. Generowanie linku {
- Otwarcie strony (jeśli konieczne dla danego serwisu)
- Wyciągnięcie linku
}

@edit

Ale jak wykorzystać array_walk?

Ten post edytował Babcia@Stefa 30.03.2008, 12:44:29


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
PawelC
post 30.03.2008, 13:57:21
Post #7





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


http://pl2.php.net/array_walk tutaj masz przykład zastosowania array_walk na tablicy
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: 14.08.2025 - 12:39