Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_match_all i foreach
Forum PHP.pl > Forum > PHP
Randallmaster
Witam serdecznie,

Staram się zrozumieć połączenie preg_match_all i foreach, napisałem takie coś do pobierania danych ze strony:

  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://praca.gazetapraca.pl/0,4050,,,1,,,,,,,,Konin,,,,,,,,,,,133.html");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5.  
  6. $result = curl_exec($curl);
  7. curl_close($curl);
  8.  
  9. preg_match_all("#<div class=\"c0\">(.*)</div>#", $result, $links){
  10.  
  11. foreach($links as $link)
  12. {
  13. print $link."<br />";
  14. }
  15.  
  16. }
  17.  
  18. ?>


Wiem że kiedyś pisało się to coś z indexowaniem $link[0] czy jakoś tak ale nigdzie nie mogę znaleźć o co w tym biega.

Co zrobić aby skrypt mój zadziałał i pobrał dane pomiędzy <div>
nospor
najpierw sprawdź, czy $links to wogole tablica:
var_dump($links);
A dopiero potem martw się o uzycie foreach
Randallmaster
hmmm po zmianie na takie coś:

  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://praca.gazetapraca.pl/0,4050,,,1,,,,,,,,Konin,,,,,,,,,,,133.html");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5.  
  6. $result = curl_exec($curl);
  7. curl_close($curl);
  8.  
  9. preg_match_all("#<div class=\"c0\"><strong>(.*?)</strong></div>#", $result, $links);
  10.  
  11.  
  12. echo 'Var dump:<p>';
  13. var_dump($links);
  14.  
  15. echo '<hr></hr>';
  16.  
  17. echo 'Print_r:<p>';
  18. print_r($links);
  19.  
  20. echo '<hr></hr>';
  21.  
  22. echo 'Print:<p>';
  23. print($links);
  24.  
  25.  
  26. ?>



Wyszło to: http://www.pracakonin.com.pl/test/gazetapraca.php


Czym to się różni sad.gif i czemu nie wyświetliło np. Przedstawiciel Handlowy?? sad.gif
lDoran
Nie wyświetla, bo nie ma co wyświetlić i nie ma jak wyświetlić. Twój skrypt nic nie robi poza wejściem na stronę i zapisaniem czegoś w zmiennej $result. Sprawdź co tam zapisuje i wtedy coś napisz.

EDIT:
Ofertę złożyłem na maila.
Noidea
bo między <div> a <strong> masz na stronie jeszcze entery i spacje
Randallmaster
<div class=\"c0\"><strong>(.*?)</strong>(.*?)</div>
dodanie tego nic nie dało ;/

\s Spacja (lub znak nowej linii)
\n Znak nowej linii

to trzeba dodaćquestionmark.gif
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.