Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlenie źródła strony od linii zawierającej dany tekst
-czolg-
post 5.09.2007, 16:53:23
Post #1





Goście







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.
Go to the top of the page
+Quote Post
kicaj
post 5.09.2007, 17:24:42
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Wyrazenia regularne.
Funkcja preg_match_all() wytnie zawartosc (wg wzorca) miedzy i przekaze do tablicy, na ktorej dowolnie mozesz operowac:)


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
devnul
post 5.09.2007, 17:26:51
Post #3





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


wyrażenie jest strasznie wolne przy dłużyszych ciągach dlatego imho lepiej byłoby użyć strpos()


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
-czolg-
post 5.09.2007, 20:02:57
Post #4





Goście







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.
Go to the top of the page
+Quote Post
devnul
post 5.09.2007, 20:16:42
Post #5





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


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?)


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
-czolg-
post 5.09.2007, 20:30:48
Post #6





Goście







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ę.
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: 13.08.2025 - 22:10