Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][curl] pobieranie konkretnego elementu stony
bercow
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


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>


Ten post edytował bercow 15.12.2009, 21:37:41
Go to the top of the page
+Quote Post
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


poczytaj w necie o - wyrażenia regularne


--------------------
Go to the top of the page
+Quote Post
vokiel
post
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Zawartość tego div'a wyciągniesz mniej więcej tak:
  1. preg_match('/<div[^>]+id="ngInfo">(.+?)<\/div>/ism', $wejscie, $wyjscie);


--------------------
Go to the top of the page
+Quote Post
zegarek84
post
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


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 )



--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
bercow
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 11
Dołączył: 25.12.2005

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


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.  

Go to the top of the page
+Quote Post
Blame
post
Post #6





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Przeczytaj sobie manuala do preg_match. A szczególnie offset.

Ten post edytował Blame 16.12.2009, 15:52:16


--------------------
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 Aktualny czas: 19.08.2025 - 04:28