Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match wiele wartości
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam mam takie pytanie bardziej tylko z ciekawości.

Jak to jest żę

  1. <?php
  2.  
  3. $url = "http://www.youtube.com/watch?v=LMZroFpNQ4o";
  4.  
  5. $page = file_get_contents($url);
  6.  
  7. preg_match_all("/\/watch\?v=(.*?)[&\"]/i", $page, $matches);
  8. $id_array = $matches[1];
  9. print_r($id_array);
  10.  


wyświetla wiele wartości, chodzi mi o to jak to jest zrobione, dlatego ze idąc tym tropem to chyba pod jenym kodem można zapisać wiele parametrów...
Tak mi się wydaje, tylko nie rozumiem właśnie skąd to się bierze, ale to dlatego że nie rozumiem samego preg_match
nekomata
Preg match to wyrażenia regularne , a (.*?) pochłania o ile mi wiadomo największą możliwą ilość znaków (albo najmniejszą , nie pamiętam :?) jeśli chodzi Ci o parametry GET to ja bym użył czegoś takiego :
  1. <?php
  2. $url = "http://www.youtube.com/watch?v=LMZroFpNQ4o";
  3. $page = file_get_contents($url);
  4. preg_match_all('#href="\/watch\?([^"]+)"#', $page, $matches);
  5. $half_parsed = array();
  6. $parsed = array();
  7. foreach($matches[1] as $value){
  8. $half_parsed[]=htmlspecialchars_decode($value);
  9. }
  10. foreach($half_parsed as $key => $value){
  11. $exploded = explode("&",$value);
  12. foreach($exploded as $k=>$v){
  13. $x = explode('=',$v);
  14. $parsed[$key][$x[0]]=$x[1];
  15. }
  16. }
  17. echo '<pre>';
  18. print_r($parsed);
  19. echo '</pre>';
  20. ?>
A i myślę że lepiej by było używać cUrl'a .. chyba że u siebie na kompie to robisz .
bastard13
Masz coś takiego:
  1. preg_match_all("/al([aei])/i", $data, $matches);

gdzie:
$data = 'Ala ma kota, ale kot nie ma Ali';
$matches wygląda tak:
array(2) {
[0]=> array(3) {
[0]=> string(3) "Ala"
[1]=> string(3) "ale"
[2]=> string(3) "Ali" }
[1]=> array(3) {
[0]=> string(1) "a"
[1]=> string(1) "e"
[2]=> string(1) "i" }
}
Jest tak dlatego, że pierwsza tablica zawiera wszystkie ciągi pasujące do całego wzorca, czyli: Ala, ale, Ali.
Natomiast w drugiej jest to, co pasuje do podwzorca (to, co jest pomiędzy ()), czyli: a (bo w Ala jest a), e (bo w ale jest e), i (bo w Ali jest i)
Możesz się pobawić z zagnieżdżonymi i mnogimi podwzorcami, to pomoże ci lepiej to wszystko zrozumieć.

Jest to naprawdę fajna funkcja, wogóle całe wyrażenia regularne to coś świetnego:) Polecam tylko, że trzeba sporo poczytać, żeby coś z tego zaczęło wychodzićsmile.gif
neo1986kk
  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [v] => LMZroFpNQ4o
  6. )
  7.  
  8. [1] => Array
  9. (
  10. [v] => RpRH6PgJarw
  11. [feature] => fvwrel
  12. )
  13.  
  14. [2] => Array
  15. (
  16. [v] => 3bMkSprca24
  17. [feature] => list_related
  18. [playnext] => 1
  19. [list] => SP0848589BB0CF8B3C
  20. )
  21.  
  22. [3] => Array
  23. (
  24. [v] => _3GL4_bGjwA
  25. [feature] => relmfu
  26. )
  27.  
  28. [4] => Array
  29. (
  30. [v] => LM1R_rhWoX0
  31. [feature] => relmfu
  32. )
  33.  
  34. [5] => Array
  35. (
  36. [v] => 2a6XAgUsmj0
  37. [feature] => relmfu
  38. )
  39.  
  40. [6] => Array
  41. (
  42. [v] => u-MvAoMrRfM
  43. [feature] => relmfu
  44. )
  45.  
  46. [7] => Array
  47. (
  48. [v] => XbWTv67zZGM
  49. [feature] => related
  50. )
  51.  
  52. [8] => Array
  53. (
  54. [v] => QgImqENTHg4
  55. [feature] => related
  56. )
  57.  
  58. [9] => Array
  59. (
  60. [v] => dLNaG1ochbY
  61. [feature] => related
  62. )
  63.  
  64. [10] => Array
  65. (
  66. [v] => pBhdGV_rizI
  67. [feature] => related
  68. )
  69.  
  70. [11] => Array
  71. (
  72. [v] => 1LliZIima7E
  73. [feature] => related
  74. )
  75.  
  76. [12] => Array
  77. (
  78. [v] => 1qTFOHqpqK8
  79. [feature] => related
  80. )
  81.  
  82. [13] => Array
  83. (
  84. [v] => hq5NIwqcwrw
  85. [feature] => related
  86. )
  87.  
  88. [14] => Array
  89. (
  90. [v] => SfVwhatXG4I
  91. [feature] => related
  92. )
  93.  
  94. [15] => Array
  95. (
  96. [v] => OVWS0IRFfuw
  97. [feature] => related
  98. )
  99.  
  100. [16] => Array
  101. (
  102. [v] => kO8sZLUnfp8
  103. [feature] => related
  104. )
  105.  
  106. [17] => Array
  107. (
  108. [v] => 3vfVOJaZw4M
  109. [feature] => related
  110. )
  111.  
  112. [18] => Array
  113. (
  114. [v] => y7ZEVA5dy-Y
  115. [feature] => related
  116. )
  117.  
  118. [19] => Array
  119. (
  120. [v] => O6foVpfj9ow
  121. [feature] => related
  122. )
  123.  
  124. [20] => Array
  125. (
  126. [v] => 89nD9XG_tCw
  127. [feature] => related
  128. )
  129.  
  130. [21] => Array
  131. (
  132. [v] => aa2Qvj4G8uY
  133. [feature] => related
  134. )
  135.  
  136. )


hehe no fajnie wyszło, tylko dobrze by było wiedzieć co to wszystko oznacza

z tego co widze to są poprsostu filmy podobne do tego którego adres pobieramy
nekomata
To są linki do filmu ze wszystkimi parametrami($_GET) w formie tablic . Myślałem że o to właśnie pytałeś (trochę niesprecyzowane było jak dla mnie pytanie).
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.