Notice: Undefined offset: 1

Résolu/Fermé
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 - Modifié par index le 14/06/2015 à 16:47
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 - 14 juin 2015 à 18:14
Bonjour,

J'ai un message d'erreur dans mon script "PHP: Notice: Undefined offset: 1"
Voici une partie de mon script:

<?php
$valide=1;
function youtube_id_from_url($url) {
    $pattern = 
        '%^# Match any youtube URL
        (?:https?://)?  # Optional scheme. Either http or https
        (?:www\.)?      # Optional www subdomain
        (?:             # Group host alternatives
          youtu\.be/    # Either youtu.be,
        | youtube\.com  # or youtube.com
          (?:           # Group path alternatives
            /embed/     # Either /embed/
          | /v/         # or /v/
          | /watch\?v=  # or /watch\?v=
          )             # End path alternatives.
        )               # End host alternatives.
        ([\w-]{10,12})  # Allow 10-12 for 11 char youtube id.
        $%x'
        ;
    $result = preg_match($pattern, $url, $matches);
    if (false !== $result) {
        return @$matches[1];
    }
    return false;
}

if(isset($_POST['url']) || isset($_POST['valid']))
{
 if(youtube_id_from_url($_POST['url']))
 {
  $id = youtube_id_from_url($_POST['url']);
  $videoTitle = file_get_contents("[http://gdata.youtube.com/feeds/api/videos/]${id}?v=2&fields=title");

  preg_match("/<title>(.+?)<\/title>/is", $videoTitle, $titleOfVideo);
  $videoTitle = $titleOfVideo[1];
  echo("Nom de la video: ".$videoTitle."<br>Lien: ".$_POST['url']);
  if(isset($_POST['url']))
  {
?><br><br>


C'est un script qui récupère des infos sur une vidéo youtube.

Merci de bien vouloir m'aider.

3 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
14 juin 2015 à 16:43
Bonjour,

Fais un print_r de la variable $titleOfVideo .. et regarde ce qu'elle contient.
preg_match("/<title>(.+?)<\/title>/is", $videoTitle, $titleOfVideo);
print_r($titleOfVideo);
$videoTitle = $titleOfVideo[1];


0
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
14 juin 2015 à 16:48
J'ai ça:

Warning: file_get_contents(http://gdata.youtube.com/feeds/api/videos/PNfmAoh7bUI?v=2&fields=title): failed to open stream: HTTP request failed! HTTP/1.0 410 Gone in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\youtube.php on line 44
Array ( ) 
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
14 juin 2015 à 16:50
C'est normal que ton ARRAY soit vide .. vu le warning que tu as avant !
Cela signifie qu'il n'arrive mas à ouvrir l'URL que tu lui donnes........
0
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
14 juin 2015 à 16:51
Ah désolé, je suis pas un expert, merci de m'avoir aidé
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
14 juin 2015 à 16:52
;-)

Sans être un expert ... il suffit de lire les messages d'erreur ... et si tu ne les comprend pas .. de regarder sur le net leur explication....
0
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
Modifié par ReDLoG le 14/06/2015 à 18:14
Bonsoir,
Je pense que le problème survient à cause des crochets entourant l'URL :
[http://gdata.youtube.com/feeds/api/videos/]

Cordialement.
Ne prenez pas la vie trop au sérieux; de toute façon, vous n'en sortirez pas vivant (°!°)
0