Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlenie źródła strony od linii zawierającej dany tekst
Forum PHP.pl > Forum > Przedszkole
czolg
Witam. Nie natrafiłem tu jeszcze na podobny problem, ale jeżeli był już poruszany, to przepraszam.
Mam taki mały skrypt do wyświetlenia pogody z wunderground, z pominięciem reklam:
  1. <?
  2. $zrodlo = file ('http://polish.wunderground.com/global/stations/12560.html');
  3. for ($i = 1349; $i < 1558; $i++) {
  4. echo $zrodlo[$i];
  5. }
  6. ?>

Jednak nie jest on dobry ze względu na ewentualną zmianę w kodzie, która spowoduje rozsypanie się całego układu (tebeli).
Ma ktoś jakiś pomysł, żeby skrypt wyszukał tekst (lub chociaż jego część):
  1. <table CELLPADDING=2 BORDER=0 CELLSPACING=1 BGCOLOR=#C8C8C8 width="100%" class=smalltable>

i wyświetlił linie od tego tekstu, do najbliższego


Z góry dziękuję za odpowiedź i pozdrawiam.
kicaj
Wyrazenia regularne.
Funkcja preg_match_all() wytnie zawartosc (wg wzorca) miedzy i przekaze do tablicy, na ktorej dowolnie mozesz operowac:)
devnul
wyrażenie jest strasznie wolne przy dłużyszych ciągach dlatego imho lepiej byłoby użyć strpos()
czolg
Dziękuję za pomoc. W ostateczności mam coś takiego:

  1. <?php
  2.  
  3. $zrodlo = file_get_contents('http://polish.wunderground.com/global/stations/12560.html');
  4.  
  5. $znajdz1 = "<table CELLPADDING=2 BORDER=0";
  6. $pozycja1 = strpos($zrodlo, $znajdz1);
  7.  
  8. $znajdz2 = "Blogs in This Country";
  9. $pozycja2 = strpos($zrodlo, $znajdz2);
  10.  
  11. $pog = substr($zrodlo, $pozycja1, $pozycja2-$pozycja1-"165");
  12.  
  13. $pogoda = ereg_replace("100%", "450", $pog);
  14.  
  15. echo $pogoda;
  16.  
  17. ?>


Pozdrawiam gorąco.
devnul
czemu w 13 lini używasz ereg_replace zamiast str_replace (nie widzę wyrażenia regularnego więc chyba zbędne jest kożystanie z funkcji obsługującej wyrażenia?)
czolg
Cytat(devnul @ 5.09.2007, 20:16:42 ) *
czemu w 13 lini używasz ereg_replace zamiast str_replace (nie widzę wyrażenia regularnego więc chyba zbędne jest kożystanie z funkcji obsługującej wyrażenia?)

Masz rację. Poprawione.

Dziękuję.
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.