Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js] pobieranie danych z obcej strony internetowej.
Forum PHP.pl > Forum > Przedszkole
konduktor
Witam! Czy jest możliwe napisanie skryptu który pobierał by z jakiejś strony internetowej konkretne dane. O co mi chodzi? Już mówcie na przykładzie. Czy jest możliwe napisanie skryptu który pobrałby ze strony np. Forum: php napis znajdujący się w lewym górnym rogu tj. php.pl i zapisał go do zmiennej?

Jeżeli coś takiego byłoby możliwe to prosiłbym o odpowiedź w czym trzeba coś takiego napisać i może jakieś wstępne wskazówki.

konduktor
lopez86
jasne że się da , file_get_contents , przefiltruj co chcesz wyrzuć echem do zmiennej JS i robisz co chcesz z tą zmienną w JS
Mike122
~konduktor był taki temat na forum i sam napisałem skrypt do niego chyba nie używałeś szukaj na forum oraz google aaevil.gif mad.gif
Temat: preg_match, Wyciągnięcie liczby z ciągu znaków
Skrypt wystarczy trochę przerobić smile.gif
Dużo osób poleci Ci pewnie użycie cURL ale jeśli nie masz musisz użyć tego co masz czyli samego php.
Jeśli masz jakieś pytania do niego pisz odpiszę tongue.gif
Pozdrawiam snitch.gif
konduktor
A w jaki sposób można pobrać kod strony html do zmiennej? Dodam tylko, że w adresie strony są przesyłane zmienne metodą POST.
Mike122
~konduktor też jest na forum. Ale pewnie nie szukałeś nawet dry.gif
Podaje funkcje:
  1. <?php
  2. function do_post_request($url, $data, $optional_headers = null)
  3. {
  4.  $params = array('http' => array(
  5. 'method' => 'POST',
  6. 'content' => $data
  7.  ));
  8.  if ($optional_headers !== null) {
  9. $params['http']['header'] = $optional_headers;
  10.  }
  11.  $ctx = stream_context_create($params);
  12.  $fp = @fopen($url, 'rb', false, $ctx);
  13.  if (!$fp) {
  14. //throw new Exception("Problem with $url, $php_errormsg");
  15.  }
  16.  $response = @stream_get_contents($fp);
  17.  if ($response === false) {
  18. //throw new Exception("Problem reading data from $url, $php_errormsg");
  19.  }
  20.  return $response;
  21. }
  22. ?>

Dzięki tej funkcji pobierzesz wynik. Więcej:
Temat: [php] Jak przechwycic wynik formularza?
Zacznij korzystać z Google i z funkcji Szukaj na forum.
Pozdrawiam snitch.gif
konduktor
Hmm połączyłem wszystko w jedną całość, ale widzę tylko białe tło i nic więcej. Gdy daje podgląd strony widzę tylko:


Oto źródło tego dokumentu:

  1. <?php
  2. function do_post_request($url, $data, $optional_headers = null)
  3. {
  4.  $params = array('http' => array(
  5. 'method' => 'POST',
  6. 'content' => $data
  7.  ));
  8.  if ($optional_headers !== null) {
  9. $params['http']['header'] = $optional_headers;
  10.  }
  11.  $ctx = stream_context_create($params);
  12.  $fp = @fopen($url, 'rb', false, $ctx);
  13.  if (!$fp) {
  14. //throw new Exception("Problem with $url, $php_errormsg");
  15.  }
  16.  $response = @stream_get_contents($fp);
  17.  if ($response === false) {
  18. //throw new Exception("Problem reading data from $url, $php_errormsg");
  19.  }
  20.  return $response;
  21. }
  22.  
  23.  
  24.  
  25. $kodstrony = do_post_request('http://www.nautilus.org.pl/article.php', 'articlesid=923');
  26.  
  27. echo $kodstrony;
  28.  
  29.  
  30. ?>


Oryginalny adres strony to: http://www.nautilus.org.pl/article.php?articlesid=923
Mike122
LOL na tej stronie nie ma formularza z metodą POST nigdzie. Zacznijmy od tego.
Masz 2 opcje do wyboru:
1. Chcesz pobrać całą stronę?
2. Pobrać tylko jakąś jej część?
Bo to co Ty pisałeś to w ogóle jest co innego. Gdyż myślałem że chcesz pobrać jakieś dane wynikowe z formularza.
konduktor
chce pobrać całą zawartość strony smile.gif
Mike122
OK ~konduktor poczytaj w manualu o file_get_contents" title="Zobacz w manualu php" target="_manual.
Przykład:
  1. <?php
  2. $url = "http://www.nautilus.org.pl/article.php?articlesid=923";
  3. ?>

Jest to prosty przykład więc nie wymagaj od niego za dużo!
Do tego typu działań polecam cURL" title="Zobacz w manualu php" target="_manual.
Doczytaj w manualu o file_get_contents" title="Zobacz w manualu php" target="_manual żeby pogłębić swoją wiedzę i korzystaj z wyszukiwarek.
Ale się na męczytłem z Tobą ale mam nadziej że pomogłem.
Pozdrawiam smile.gif
konduktor
Tak, wielkie dzięki za poświęcony czas.
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.