Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pobieranie danych z innej strony
stan89
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 14.08.2014

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


Wtam!

Jak w temacie ćwiczę pobieranie danych z jakiejś innej strony. Jako przykład napisałem prostą stronę z napisem i liczbą. Chcę, żeby kod znalazł tą liczbę i pobrał. Jeśli zamiast "^[a-z]+$" wpiszę czego konkretnie ma szukać jest ok. Czy w ogóle w dobrą stronę idę? Wiem, że są podobne tematy na forum i to na ich podstawie napisałem to:

Pozdrawiam!

<?php
$url="http://ja89.cba.pl/tekst.html";
$zawartosc = file_get_contents($url);

if(ereg("^[0-9]+$", $zawartosc, $kurs))
{
echo "<p>znaleziono: ";
echo $kurs[0];
echo '</p>';
}
else
{
echo '<p>nic nie znaleziono</p>';
};
?>[php]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Akurat serwer do hostowania tego typu rzeczy wybrałeś bardzo zly, dokleją ci tam masę kodu dlatego też masz problemy. W przypadku twojej strony było by to mniej więcej coś takiego:

  1. <?php
  2.  
  3. $result = file_get_contents('http://ja89.cba.pl/tekst.html');
  4.  
  5. preg_match('/cwiczenie\s([0-5]+)/', $result, $matches);
  6.  
  7. echo '<pre>'.print_r($matches, true).'</pre>';


jeżeli chciałbyś pobrać numer ćwiczenia. W przypadku kursu walut, ten html jest tam trochę bardziej skomplikowany i najlepiej byłoby dobrać się do tego za pomocą jakiejś biblioteki do poruszaniu się w drzewie DOM, ale można to też zrobić za pomocą wyrażenia:

  1. <?php
  2.  
  3. $result = file_get_contents('https://www.google.com/finance?q=PLNUSD');
  4.  
  5. preg_match('#<span class=bld>([\d]+)[^<]+</span>#', $result, $matches);
  6.  
  7. echo '<pre>'.print_r($matches, true).'</pre>';


PS do poćwiczenia wyrażeń są odpowiednie strony, jak np ta: http://www.regexr.com/ z tym że na tego typu stronach przeważnie implementacje javascriptowego regexa, więc przewidywania nie będą tam dostępne, ale i tak większość ludzi nie używa tego, bo przeważnie wyrażenia używane są do banalnych rzeczy, jak wyciągniecie cyfer etc.

Ten post edytował by_ikar 14.08.2014, 20:42:21
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.12.2025 - 10:12