Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sprawdzanie linku
Forum PHP.pl > Forum > PHP
Babcia@Stefa
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
PawelC
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.
Babcia@Stefa
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
tomeksobczak
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ć
pyro
ja proponuje się zapoznać z funkcją array_walk, bedziesz mogl dowolnie operowac, problem rozwiazany. smile.gif
Babcia@Stefa
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?
PawelC
http://pl2.php.net/array_walk tutaj masz przykład zastosowania array_walk na tablicy
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.