Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z pobraniem danych
maksimus86
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 2.12.2007

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


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

Ten post edytował maksimus86 2.12.2007, 19:45:00
Go to the top of the page
+Quote Post
domis86
post
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

Ten post edytował domis86 3.12.2007, 03:24:02
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #3





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(domis86 @ 3.12.2007, 03:23:30 ) *
Ludzie! Czemu wszyscy sie kochaja w tych regexpach?
...
proste, zgrabne i bez regexpa (regexp śmierdzi (IMG:http://forum.php.pl/style_emoticons/default/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];
Go to the top of the page
+Quote Post
maksimus86
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 2.12.2007

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


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ą(IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 08:56