Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CURL] bład przy ustalaniu "wzorca"
Forum PHP.pl > Forum > Przedszkole
el_plecinio
chciałbym pobrać ze strony: http://tm.managerzone.pl/24/index.php?num=2 fragment poniżej:

  1.  
  2. <table class="l2_tab_big" id="tab_big">
  3. <tbody><tr class="row_hd0">
  4. <td colspan="5">&nbsp;</td>
  5. <td colspan="5">Ogółem</td>
  6. <td colspan="5">U siebie</td>
  7. <td colspan="5">Wyjazdy</td>
  8. <td colspan="3">Bezpośrednie</td>
  9. </tr>
  10.  
  11. (...)
  12.  
  13.  
  14. <td class="col_10">-51</td>
  15. <td class="col_11">5</td>
  16. <td class="col_12">2</td>
  17. <td class="col_13">0-2-3</td>
  18. <td class="col_14">43:73</td>
  19. <td class="col_15">-30</td>
  20. <td class="col_16">5</td>
  21. <td class="col_17">4</td>
  22. <td class="col_18">1-1-3</td>
  23. <td class="col_19">46:67</td>
  24. <td class="col_20">-21</td>
  25. <td class="col_21"></td>
  26. <td class="col_22"></td>
  27. <td class="col_23"></td>
  28. </tr>
  29. <tr class="row_ft">
  30. <td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td>
  31. </tr>


ale mi to nie wychodzi, gdy użyłem:
  1. echo $result . '<br>';

to strona sie wyświetliła, wiec problem musi być tu:
  1. $pattern = '(<table id="tab_big" class="l2_tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td></tr></tbody></table>)';
  2.  
  3. $ile = preg_match_all($pattern, $result, $matches, PREG_PATTERN_ORDER);
  4.  
  5. for ($i=0; $i<count($ile); $i++) {
  6. echo ($matches[0][$i]) . '<br>';
  7. }


a dokładniej:
  1. $pattern = '(<table id="tab_big" class="l2_tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td></tr></tbody></table>)';

wiele prób robiłem, rózne kombinacje ale nic nie wyszło:(
rocktech.pl
Witam.

  1. $pattern = preg_quote('(<table id="tab_big" class="l2_tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td></tr></tbody></table>)');
el_plecinio
  1. Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in /home/forummz/domains/forummz.eu/public_html/cos.php on line 18

taki bład mam.

Spróbowałem tak: i to samo ...

  1. $pattern = preg_quote('(\<table id="tab_big" class="l2_tab_big"\>(.*?)/<td colspan="23"\>powered by ? \<a href="http://tabelkownik.prv.pl"\>Tabelkownik 1.5\</\a\>\</\td\>\</\tr\>\</\tbody\>\</\table\>)');
gluchy8
  1. $pattern = '@<table id="tab_big" class="l2_tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td></tr></tbody></table>@';


Pozdrawiam smile.gif
el_plecinio
nie wiem co jest z tym ... brak błedu ... ale i rezultatu ...

http://forummz.eu/cos.php

dodałem
  1. echo '<br>-----------------------<br>'.$result . '<br>';

by pokazać ze curl pobiera dobrze
amii
  1. @<table class="l2_tab_big"\s+id="tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td>\s+</tr>\s+</tbody></table>@Uis
el_plecinio
to twoje:
  1. $pattern ='@<table class="l2_tab_big"\s+id="tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td>\s+</tr>\s+</tbody></table>@Uis';

zastosowałem ale brak efektów ...
amii
Hmm dziwne sprawdzałem tu na danych przykładowych jakie podałeś -> http://www.functions-online.com/preg_match_all.html
i działa. Sprawdź co dokładnie zwraca CURL bo nie ma cudów. Powinien wyciągnąć dane pod $matches[1][0] a widzę, że tego nie sprawdzasz w przykładowym kodzie...
el_plecinio
Też sprawdziłem i działa ....

oto cały kod :
  1. $url = 'http://tm.managerzone.pl/24/index.php?num=2'; //adres strony do przeskanowania jako lancuch znakow
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwróć w postaci zmiennej
  5. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  6. $result = curl_exec($ch); // wykonanie skryptu
  7. curl_close($ch);
  8.  
  9. // $pattern = preg_quote('\<table id="tab_big" class="l2_tab_big"\>(.*?)/<tr class="row_ft">/>/<td colspan="23"\>powered by &copy; \<a href="http://tabelkownik.prv.pl"\>Tabelkownik 1.5\</\a\>\</\td\>\</\tr\>\</\tbody\>\</\table\>/');
  10. //$pattern = '(Rozbudowana tabela z emblematami klubów)';
  11. // $pattern = preg_quote('(<table id="tab_big" class="l2_tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td></tr></tbody></table>)');
  12. //$pattern = preg_quote('(<table id="tab_big" class="l2_tab_big">(\.*?)<td colspan="23">powered by ? <a href="http:\/\/tabelkownik\.prv\.pl">Tabelkownik 1\.5<\/a><\/td><\/tr><\/tbody><\/table>)');
  13. // $pattern = '@<table id="tab_big" class="l2_tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td></tr></tbody></table>@';
  14. //$pattern = '@Rozbudowana tabela z emblematami klubów(.*?)Mała tabela@';
  15. $pattern ='@<table class="l2_tab_big"\s+id="tab_big">(.*?)<td colspan="23">powered by &copy; <a href="http://tabelkownik.prv.pl">Tabelkownik 1.5</a></td>\s+</tr>\s+</tbody></table>@Uis';
  16.  
  17. $ile = preg_match_all($pattern, $result, $matches, PREG_PATTERN_ORDER);
  18.  
  19. for ($i=0; $i<count($ile); $i++) {
  20. echo ($matches[1][$i]) . '<br>';
  21. }
  22. //echo '<br>-----------------------<br>'.$result . '<br>';


ktoś ma jakiś pomysł questionmark.gifsad.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.