formulaire saisie url youtube
Posté : 18 févr. 2011, 11:56
bonjour, j'essaie de faire un formulaire de saisie d'url youtube afin de placer la video directement sur mon site avec l'url, mais j'ai une erreur :
le code :Warning: file_get_contents(http://www.youtube.com/watch?v=uttrX1YZ63U) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /home/www/yout.php on line 31
1#L'adresse est invalide. Veuillez entrez uniquement l'URL de la page
(ex: http://www.youtube.com/watch?v=uttrX3YZ63W).#
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
</head>
<body>
<?php
$lang['video']['0'] = '';
$lang['video']['1'] = 'L\'adresse est invalide. Veuillez entrez uniquement l\'URL de la page<br />(ex: http://www.youtube.com/watch?v=uttrX3YZ63W).';
$lang['video']['3'] = 'Un problème technique est survenu. Un administrateur a été averti et le problème devrait être résolu rapidement.';
$lang['video']['4'] = 'Le propriétaire de cette vidéo n\'a pas souhaité qu\'elle puisse apparaître sur d\'autres sites.';
function video_getcode($url){
$error_nb = 0;
$code = '';
if($url = parse_url($url)){
$host = explode('.', $url['host']);
switch($host[count($host) - 2].'.'.$host[count($host) - 1]){
case 'youtube.com':
if($html = file_get_contents($_POST['url'])){
$html = explode ('<input id="embed_code" name="embed_code" type="text" value="', $html);
if(isset($html[1])){
$html = explode ('"', $html[1]);
$html = $html[0];
if(strpos($html, '<object') !== false){
$code = $html;
}
else {
$error_nb = 4;
}
}
else {
$error_nb = 3;
}
}
else {
$error_nb = 1;
}
break;
case 'dailymotion.com':
break;
default: $error_nb = 1;
}
}
else {
$error_nb = 1;
}
if($error_nb != 0){
//WARN ADMINISTRATOR
}
return array('error_nb' => $error_nb, 'source' => $host[count($host) - 2], 'code' => $code);
}
//pour tester :
$_POST['url'] = 'http://www.youtube.com/watch?v=uttrX1YZ63U';
if(isset($_POST['url'])){
$result = video_getcode($_POST['url']);
echo $result['error_nb'].'#'.$lang['video'][$result['error_nb']].'#'.$result['code'];
}
?>
</body>
</html>