Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odczyt tagów filmu z YouTube
Forum PHP.pl > Forum > Przedszkole
northwest
Witam smile.gif
Potrzebuję zrobić odczyt długości kliku bezpośrednio z youtube. Znalazłem takie rozwiązanie:
  1. $xml = simplexml_load_file('http://gdata.youtube.com/feeds/api/videos/G-hW-0MP5lI');
  2. echo"<pre>";
  3. print_r($xml);
  4. echo"</pre>";


Ale podaje niestety wszystko prócz czasu trwania... Wiecie może jak odczytać ten czas?

Northwest
Sephirus
Na samej stronie z wideo masz gdzieś tag:

  1. <meta itemprop="duration" content="PT3M32S">


Gdzie PT3M32S to zapis Interwału czasowego smile.gif

P T 3m 32S - chyba nie musze tłumaczyć wink.gif
northwest
aha,superek smile.gif Dziękuje:) a masz może jakiś pomysł jak można to prosto i szybko wyciągnąć - w sensie w php??smile.gif
Sephirus
  1.  
  2. $site = file_get_contents('adres_strony_YT');
  3. preg_match('/<meta\s*itemprop="duration"\s*content="([^"]+)">/si',$site,$match);
  4.  
  5. $di = new DateInterval($match[1]);
  6.  
  7. echo 'Kawalek trwa: '.$di->h.' godzin '.$di->i.' minut '.$di->s.' sekund';
  8.  
northwest
Fatal error: Class 'DateInterval' not found in /cms/web/filmy.php on line 59 - taki błąd mi to zwraca sad.gif
Sephirus
To wymaga PHP 5.3 + z tego co pamiętam...


Inaczej można to zastąpić jakimś preg_matchem

np:

  1. $site = file_get_contents('adres_strony_YT');
  2. preg_match('/<meta\s*itemprop="duration"\s*content="([^"]+)">/si',$site,$match);
  3.  
  4. preg_match('/([0-9]+)H/si',$match[1],$matchH);
  5. preg_match('/([0-9]+)M/si',$match[1],$matchM);
  6. preg_match('/([0-9]+)S/si',$match[1],$matchS);
  7.  
  8. echo 'Kawalek trwa: '.$matchH[1].' godzin '.$matchM[1].' minut '.$matchS[1].' sekund';
  9.  
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.