Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problem z preg_match
Forum PHP.pl > Forum > Przedszkole
become
mam stronkę http://tv.o2.pl/program/

chce wyciagnac to co znajduje sie w selectach.

oto kod HTML:

  1. <form action="/program/" method=post>
  2. <b>Stacja TV:</b><br>
  3. <select name="id_stacja" class="t1">
  4. <option value=0> --- wybierz stację<option value=11 selected> Ale kino!
  5.  
  6. <option value=22 > AXN
  7. <option value=23 > AXN Crime
  8. <option value=24 > AXN Sci- Fic
  9. <option value=8 > Canal+
  10. <option value=9 > Canal+ Film
  11. <option value=10 > Canal+ Sport
  12. <option value=16 > Cartoon Network
  13. <option value=21 > Cinemax
  14. <option value=35 > Cinemax 2
  15.  
  16. <option value=33 > Comedy Central
  17. <option value=17 > Discovery Channel
  18. <option value=12 > Eurosport PL
  19. <option value=40 > FoxLife
  20. <option value=20 > Hallmark
  21. <option value=7 > HBO
  22. <option value=34 > HBO Comedy
  23. <option value=19 > HBO2
  24. <option value=25 > Kino Polska
  25.  
  26. <option value=39 > Kuchnia TV
  27. <option value=44 > MGM
  28. <option value=13 > MTV Polska
  29. <option value=15 > National Geographic
  30. <option value=37 > Planete
  31. <option value=3 > Polsat
  32. <option value=18 > Polsat Sport
  33. <option value=42 > Sci Fi Channel
  34. <option value=29 > TCM
  35.  
  36. <option value=26 > TV Polonia
  37. <option value=28 > TV Puls
  38. <option value=27 > TV4
  39. <option value=4 > TVN
  40. <option value=6 > TVN 24
  41. <option value=5 > TVN Siedem
  42. <option value=41 > TVN Style
  43. <option value=38 > TVN Turbo
  44. <option value=1 > TVP 1
  45.  
  46. <option value=2 > TVP 2
  47. <option value=30 > TVP Info
  48. <option value=36 > TVP Kultura
  49. <option value=43 > Universal Channel
  50. <option value=14 > VIVA Polska
  51. <option value=45 > Wojna i Pokój
  52. <option value=31 > Zone Europa
  53. <option value=32 > Zone Romantica
  54.  
  55. <br><br>
  56.  
  57. <b>Dzień:</b><br>
  58. <select name="dzien" class="t1">
  59. <option value=0 selected> dzisiaj (06.06)<option value=1> niedziela (07.06)<option value=2> poniedziałek (08.06)<option value=3> wtorek (09.06)<option value=4> środa (10.06)<option value=5>czwartek (11.06)<option value=6> piątek (12.06)</select>
  60.  
  61. <br><br>
  62.  
  63. <input type=submit name=pokaz value="Pokaż program" class=t1 style="background: #99cccc; color: #ffffff">
  64. </form>


oto kod PHP:

  1. <?php
  2. $url2 = 'http://tv.o2.pl/program/';
  3.  
  4. $a = file($url2);
  5. $wpHtml = implode("\n", $a);
  6.  
  7. #echo $wpHtml;
  8.  
  9.  
  10. $data=preg_match('/<select name="id_stacja" class="t1">(.*?)</select>/', $wpHtml, $res);
  11. print_r ($res);
  12. ?>


i teraz pytanie, dlaczego preg_match nic nie dopasowuje skoro wszystko jest - wg. mnie - dobrze ?
erix
Cytat
dlaczego preg_match nic nie dopasowuje skoro wszystko jest - wg. mnie

Gdyż Twoje wyrażenie skanuje kod linia po linii. Poczytaj o modyfikatorze /s.
become
hmm, ale nie ma nic tutaj o tym modyfikatorze:

http://pl.php.net/preg_match

i tak przy okazji co oznacza we wzorze znak / na poczatku i koncu. Czy rozni sie on od znaku #.

$data=preg_match('/<select name="id_stacja" class="t1">(.*?)</select>/', $wpHtml, $res);
$data=preg_match('#<select name="id_stacja" class="t1">(.*?)</select>#', $wpHtml, $res);

czym sie roznia powyzsze zapisy ?
Fishu
Ja ostatnio znalazłem coś takiego: http://pl.php.net/manual/en/function.preg-replace.php#89364

Kod
\s Match a whitespace character
erix
Cytat
s (PCRE_DOTALL)
If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.


Cytat
hmm, ale nie ma nic tutaj o tym modyfikatorze:

Otworzyłem tę stronę, dwa kliknięcia i znalazłem.
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.