Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z pobraniem danych
Forum PHP.pl > Forum > PHP
maksimus86
Witam
mam pewien problem. Robie wyrażenie regularne które ma bobrać dane z tabeli. Jednak dane są przedstawiane w 2 posaciach:
postać 1 :

<td

width="463" class="t12blackNU">TO POTRZEBUJE WYCIĄGNĄĆ<br></td>
<td

width="10" class="t12blackNU">&nbsp;</td>

posatć 2 :
<td

width="463" class="t12blackNU" bgcolor="#fff2ca">



<a href="audycja.asp?a=93900" class="t12blackU">TO CHCĘ WYCIĄGNĄĆ</a>



</td>

moje wyrażenie to:

preg_match_all('/<td width="463" class="t12blackNU"[ bgcolor="#fff2ca"]?>[<a href="audycja.asp\?a=]?[0-9]*[" class="t12blackU"]?[>]?(.*)[<\/a>]?[<br>]?[<\/td>]?/', $ret, $m1) ;

Dane pobiera dobrze tylko dla postaci1 postać2 pomija zupełnie.
Będę wdzięczny za wszelką pomoc, lub wskazówki.
Pozdrawiam
domis86
Ludzie! Czemu wszyscy sie kochaja w tych regexpach?
Najpierw pomyslcie jakby to zorbic normalnie

...

http://pl.php.net/manual/en/function.strip-tags.php

  1. <?
  2. $t = '
  3. <td
  4.  
  5. width="463" class="t12blackNU">TO POTRZEBUJE WYCIĄGNĄĆ<br></td>
  6. <td
  7.  
  8. width="10" class="t12blackNU">&nbsp;</td>
  9.  
  10. ';
  11.  
  12. $t = strip_tags($t);
  13. echo $t;
  14.  
  15. $t = '
  16. <td
  17.  
  18. width="463" class="t12blackNU" bgcolor="#fff2ca">
  19.  
  20.  
  21.  
  22. <a href="audycja.asp?a=93900" class="t12blackU">TO CHCĘ WYCIĄGNĄĆ</a>
  23.  
  24.  
  25.  
  26. </td>
  27. ';
  28.  
  29. $t = strip_tags($t);
  30. echo $t;
  31. ?>



proste, zgrabne i bez regexpa (regexp śmierdzi smile.gif )
JaRoPHP
Cytat(domis86 @ 3.12.2007, 03:23:30 ) *
Ludzie! Czemu wszyscy sie kochaja w tych regexpach?
...
proste, zgrabne i bez regexpa (regexp śmierdzi smile.gif )
Niby tak, ale... nie wszystko da się zrobić za pomocą: strip_tags" title="Zobacz w manualu PHP" target="_manual. Przypuścimy, że wczytujesz całą stronę (file_get_contents" title="Zobacz w manualu PHP" target="_manual) i chcesz wyciągnąć tylko interesujące Cię dane. Wtedy Twoja metoda @domis86 się raczej nie sprawdzi (zwróci całą stronę bez znaczników).

Proponuję takie wyrażenie:
  1. <?php
  2. preg_match_all('/<td width="463" class="t12blackNU" ?(?:bgcolor="#fff2ca")?>(?:<a href="[a-z0-9-.?=]+" ?(?:class="t12blackU")?>)?([a-zA-ZąęóśłżźćńĘÓĄŚŁŻŹĆŃ0-9-._ ]+)(?:</a>)?(?:<br>)?</td>/', $line, $matches);
  3. ?>

Dane wyciągnięte są w tablicy $matches[0];
maksimus86
Dzięki wielkie. Włąsnie o to mi chodziło. Pobrałem całą strone za pomocą cURL i w tym szukam pewnych wartości. Zrobiłem to troche bardziej skąplikowaną metodąwinksmiley.jpg ale działa. Dzięki bardzo za pomoc JaRoPHP i domis86. Zostałem jednak przy wyrażeniach regularnych gdyż tak jak napisał JaRoPHP cięzko przeszukać cały kod strony innym sposobem. Mam projekt szkolny w króm mam napisać witryne z internetowymi radiami i program dla każdego z nich dopasować:).
Dzięki wielkie
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.