Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][curl] pobieranie konkretnego elementu stony
Forum PHP.pl > Forum > Przedszkole
bercow
Witam.

Mamy sobie np. takie coś, w jaki sposób pobrać konkretną informacje z strony, w wyszukiwarce każdy odsyła do preg-match, ale jakoś nie mogę go ogarnąć
  1. <?php
  2. $ch = curl_init('http://www.wp.pl');
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. echo curl_exec($ch);
  5. curl_close($ch);
  6. ?>



  1. <div id="ngInfo">
  2. Wtorek, 15 grudnia 2009, imieniny <a href="http://kartki.wp.pl">Waleriana, Celiny</a> </div>
Wicepsik
poczytaj w necie o - wyrażenia regularne
vokiel
Zawartość tego div'a wyciągniesz mniej więcej tak:
  1. preg_match('/<div[^>]+id="ngInfo">(.+?)<\/div>/ism', $wejscie, $wyjscie);
zegarek84
Cytat(bercow @ 15.12.2009, 21:35:14 ) *
...w jaki sposób pobrać konkretną informacje z strony...


moja odpowiedź z całkiem innej beczki i zainteresuj się jeśli jedno z poniższych w Twoim wypadku się sprawdza:


- znasz przynajmniej jakieś podstawy js - jeśli jakieś podstawy js znasz to i skryptami html'a w js umiesz przeszukiwać tak często używaną nazwę tegoż dokumentu DOM - jeśli więcej piszesz bądź trochu znasz czysty js to zainteresuj się:Document Object Model - DOM w zasadzie w każdym języku jest taki sam, tyle, że jak w js obiektowo odwołujesz się do metody za kropką to w php -> ...

- apropo wyższego jednak wolisz lub używasz jQuery (kożystasz z selektorów css):phpQuery [server-side, chainable, CSS3 selector driven Document Object Model API based on jQuery JavaScript Library]




odwołując się do dokumentu html'a/traktując go jak xml'a/bądź kożystając z przyzwyczajeń z js to są najlepsze rozwiązania - ale mało tego - zapomnij o tym co napisałem przed chwilą - to są dokładniejsze rozwiązania od wyrażeń regularnych jeśli wie się czego się szuka - a nie piszę tak dlatego, że nie znam wyrażeń regularnych - znam je i na forum często z nimi też pomagałem - one są dobre do szybkich zastosowań ale mało też elastyczne (no może i kwestia sporna ale DOM rulez winksmiley.jpg )

bercow
A wiec mamy to, ale dostaje tylko Array, i nie moge tego przeskoczyc, aby dostac tego div'a :/ Jak to wydobyc z tej tablicy ?
  1. <?php
  2. $ch = curl_init('http://www.wp.pl');
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. //echo curl_exec($ch);
  5. curl_close($ch);
  6.  
  7. preg_match('/<div[^>]+id="ngInfo">(.+?)<\/div>/ism', $wejscie, $wyjscie);
  8.  
  9.  
  10.  
  11.  
  12. /*
  13.  $dane = $wyjscie;
  14.  $file = "plik.txt";
  15.  
  16.  $fp = fopen($file, "a");
  17.  
  18.  flock($fp, 2);
  19.  fwrite($fp, $dane);
  20.  flock($fp, 3);
  21.  fclose($fp); */
  22.  
  23. print_r($wyjscie);
  24. ?>
  25.  
  26.  
  27.  

Blame
Przeczytaj sobie manuala do preg_match. A szczególnie offset.
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.