Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ID z filmu youtube
malin90
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 5.01.2009

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


użyj preg_match, na końcu masz wyrażenie regularne - http://www.sitepoint.com/forums/php-34/pre...-id-543226.html
Go to the top of the page
+Quote Post
malin90
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 5.01.2009

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


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
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
malin90
post
Post #5





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 5.01.2009

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


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
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 02:37