Autor | Zpráva | ||
---|---|---|---|
Hezyk Profil * |
#1 · Zasláno: 20. 8. 2010, 11:46:45
Dobrý den, jak se dá zjistit délku videa z url youtube a uložit do proměný (3:24)?
|
||
nightfish Profil |
#2 · Zasláno: 20. 8. 2010, 11:54:35
Pravděpodobně by to mohlo jít regulárním výrazem.
if (preg_match('~"length_seconds": (\d+)~', $htmlZdrojStrankyZYoutube, $vystup)) { echo "délka videa je: $vystup[1] sekund"; } |
||
Hezyk Profil * |
#3 · Zasláno: 20. 8. 2010, 12:33:30
Nějak mi to nejde ani toto
$stranka = '...'; // stranka videa stahnuta z YouTube if (preg_match('~<title>(YouTube - )?(.*?)</title>~is', $stranka, $re)) { $nazev = $re[2]; } else { $nazev = '...'; // pro pripad selhani } |
||
Hezyk Profil * |
#4 · Zasláno: 20. 8. 2010, 13:01:12
Nevíte proč to nefunguje?
<?php $url = "http://www.youtube.com/watch?v=O4hk0ghaj_E"; function getVideo($url) { echo $url; // get video ID from $_GET if (!isset($url)) { return 'Please enter a YouTube video URL.'; } else { $vid = stripslashes($url); $string = $vid; $url = parse_url($string); parse_str($url['query']); } // set video data feed URL $feedURL = 'http://gdata.youtube.com/feeds/api/videos/'. $v; //Since allow_url_fopens is off use curl to get //the xml document from youtube. ;) //Added by DNI Web Design, June 11, 2010 $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL,$feedURL); // set url to post to curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_TIMEOUT, 4); // times out after 4s $result = curl_exec($ch); // run the whole process*/ // read feed into SimpleXML object $entry = simplexml_load_string($result); // parse video entry $video = $this->parseVideoEntry($entry); //These variables include the video information $videos["title"] = stripslashes($video->title); $videos["description"] = stripslashes($video->description); $videos["thumbnail"] = stripslashes($video->thumbnailURL); $videos["author"] = stripslashes($video->author); $videos["embed"] = '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/'.$v.'&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'.$v.'&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>'; $videos["key"] = $v; return $videos; } ?> |
||
PostCC Profil |
#5 · Zasláno: 20. 8. 2010, 14:31:28
Hezyk:
Nejspíš to bude rozbitý. Když totiž vyřadím tu funkci parseVideoEntry(), jejíž obsah neznám, tak se mi vrací přesně to, co z předchozího scriptu očekávám, tedy výstup API z http://gdata.youtube.com/feeds/api/videos/. Pokud to nefunguje, určitě to vrací nějaké chybové hlášení nebo se to alespoň chová nějak, zatímco očekáváte něco jiného. Zkuste se podělit o víc informací. |
||
Hezyk Profil * |
#6 · Zasláno: 20. 8. 2010, 14:38:59
PostCC:
„Zkuste se podělit o víc informací.“ Právě že mi to nic nevypíše. |
||
PostCC Profil |
#7 · Zasláno: 20. 8. 2010, 14:51:53
Hezyk:
Já teda naivně předpokládám, že někde později tu definovanou funkci taky voláte! V tom, co jste tu předvedl ji pouze definujete, takže je nutné, aby posléze následovalo ještě volání, např.: Print_R(getVideo($url)); |
||
Časová prodleva: 14 let
|
0