Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ID z filmu youtube
Forum PHP.pl > Forum > PHP
malin90
Witam,

mam taki problem, otóż chcę wyciągnąć z linku prowadzącego do strony z filmem na youtube jego id.
Chciałbym aby id było pobieranie niezależnie od tego w jakiej formie link występuje w bazie :

czyli w takiej:
  1. http://www.youtube.com/watch?v=ct4fCc-mDGU

albo w takiej:
  1. http://www.youtube.com/watch?v=ct4fCc-mDGU&feature=related


Próbowałem w ten sposób:

  1. $youtube = $wynik['film'];
  2. parse_str(parse_url($youtube, PHP_URL_QUERY));
  3. echo $v;


i działa, ale chciałbym aby wynik czyli $v nie wyświetlał się w echo tylko w jakiejś zmiennej,
bo chciałbym wyświetlić wynik w konkretnym miejscu.

Bardzo, bardzo proszę o pomoc i pozdrawiam.
tehaha
użyj preg_match, na końcu masz wyrażenie regularne - http://www.sitepoint.com/forums/php-34/pre...-id-543226.html
malin90
Użyłem:
  1. $url = $wynik['film'];
  2. $page = file_get_contents($url);
  3. preg_match_all("/\/watch\?v=(.*?)[&\"]/i", $page, $matches);
  4. $id_array = $matches[1];
  5. print_r($id_array);


... i zwraca mi coś takiego:
  1. Array ( [0] => ct4fCc-mDGU [1] => ct4fCc-mDGU [2] => ct4fCc-mDGU [3] => ct4fCc-mDGU [4] => ct4fCc-mDGU [5] => ct4fCc-mDGU [6] => ct4fCc-mDGU [7] => J41uAI9S8_U [8] => K2CTJxS6AUg [9] => mwq-T2CrJRU [10] => Rrt_OudkUXk [11] => 7aH5H3stBPA [12] => zrkZPWRHNDM [13] => EDrOriKrV3g [14] => 4QA-ahBLM5g [15] => q0wTjj8Nn6Q [16] => wn1kI6-5Q84 [17] => Av1THFjOm8o [18] => I-NUX01XZG8 [19] => Y3MUhgENCwg [20] => E3l5-5u8hJQ [21] => 2CVzh3K29TQ [22] => bhHpLmqCji4 [23] => gX7VG1Lh_dM [24] => ZlLdhaz13Yo [25] => GKbTC8Z_EGc [26] => J8t9d4TIVHQ [27] => 8Hi8f_OsyKs [28] => zLkcsiVlSho [29] => Gzzn8fardKU [30] => ) 


sciana.gif
phpion
Cytat(malin90 @ 22.08.2011, 12:02:34 ) *
  1. $youtube = $wynik['film'];
  2. parse_str(parse_url($youtube, PHP_URL_QUERY));
  3. echo $v;


i działa, ale chciałbym aby wynik czyli $v nie wyświetlał się w echo tylko w jakiejś zmiennej,
bo chciałbym wyświetlić wynik w konkretnym miejscu.

No ale przecież tak to działa. W zmiennej $v masz ID filmiku. Nie chcesz jej wyświetlać, to nie wyświtaj (wywal echo). Jeśli chcesz przypisać do innej zmiennej to daj $inna_zmienna = $v; i po krzyku.
malin90
No udało się... Lkingsmiley.png

Robiłem też tak jak phion opisał, ale że nie działało, to zająłem się innymi rozwiązaniami,
a zapomniałem że używam smarty i nie dopisałem jednej ważnej rzeczy wink.gif

Dla tych co mają ten sam problem podaję cały kod:
  1. $youtube = $wynik['film'];
  2. parse_str(parse_url($youtube, PHP_URL_QUERY));
  3. $filmid = $v;
  4.  
  5. $smarty -> assign('filmid', $filmid);


Pozdrawiam
Crozin
Co do samego wyrażenia. Kiedyś coś takiego zrobiłem:
Kod
#youtu\.?be(?:\.com)?/(?:v/([\w\-]+)|(?:embed/([\w\-]+)|(?:watch\?v=([\w\-]+))|([\w\-]+)))#
Wspiera:
- http://www.youtube.com/watch?v=ZN5PoW7_kdA
- http://www.youtube.com/v/ZN5PoW7_kdA
- http://youtu.be/ZN5PoW7_kdA
- <iframe width="560" height="345" src="http://www.youtube.com/embed/ZN5PoW7_kdA" frameborder="0" allowfullscreen></iframe>
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.