Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt - Odwiedzanie stron i sprawdzanie źródła strony.
Forum PHP.pl > Forum > PHP
Klycior
Cześć,

Tak ostatnio wpadłem na pomysł aby napisać sobie skrypcik do wymiany bannerów.

Jak narazie myślę jak napisać skrypt a bardziej jakiej funkcji użyć która wejdzie mi w daną stronę dodaną przez użytkownika a następnie sprawdzi w źródle czy jest dany kod źródłowy i zaakceptuje jego stronę smile.gif

Z góry thx

masiakla
curl i wyrażenia regularne pomogą.
CuteOne
Po co chodzić na około..

  1. $file = file('http://strona.pl');
  2.  
  3. foreach($file as $list) {
  4. // - tu wstawiasz kod do szukania "w źródle czy jest dany kod źródłowy" preg_match, explode lub co tam chcesz
  5. }
sido
a curlem możesz np tak:
  1. $adres_do_sprawdzenia = 'http://www.domena.pl/index.php';
  2. $twoja_domena='http://www.twojadres.pl';
  3.  
  4. $pobierz = curl_init();
  5. curl_setopt($pobierz, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($pobierz, CURLOPT_URL, $adres_do_sprawdzenia);
  7. curl_setopt($pobierz, CURLOPT_FOLLOWLOCATION, TRUE);
  8. $strona_do_sprawdzenia = curl_exec($pobierz);
  9. curl_close($pobierz);
  10.  
  11. if (strpos($strona_do_sprawdzenia,$twoja_domena) === FALSE)
  12. {
  13. // brak adresu na stronie
  14. }
Klycior
Dzięki wielkie.

W weekend coś pokombinuję.

sido, tak przyglądam się temu twojemu przykładowi i zastanawia mnie jak tam efektywnie użyć preg_match np dla znacznika <center>. Dokładniej to chodzi mi o to że jeżeli w źródle występuje <center> to wartość zwracana jest 1.



Obecnie mam coś takiego:


  1. <?
  2. $file = file('http://adres');
  3. foreach($file as $list) {
  4. $szukany = '/<center>/';
  5. preg_match_all($szukany, $list, $wyniki);
  6. echo count($wyniki[0]);
  7. }


Wszystko jest ładnie kiedy źródło strony jest małe. Jeżeli chcę np sprawdzić znacznik <html> dla wp.pl to już wyświetlają się dziwne liczby, gdzie może być błąd ?
Quantum
@klycior iterując po wszystkich liniach (fragment: foreach($file as $list)) przeszukujesz każdą linię pod kątem wystąpienia znacznika <html> (zastanów się ile razy powinien wystąpić w dokumencie) i to jeszcze preg_match_all.. samego foreach skasuj, a jego zawartość przenieś poza niego, w zmiennej $file zamiast funkcji file użyj file_get_contents, to wszystko smile.gif a tak na marginesie do zliczania wystąpień jakiegoś stałego ciągu w innym ciągu używa się substr_count.
Klycior
Dzięki wielkie.

Pięknie działa.
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.