Notice: Undefined offset: 1

Résolu
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

  1. 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 (°!°)
    1. 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 ( ) 
      1. Modérateur
        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........
      2. Ah désolé, je suis pas un expert, merci de m'avoir aidé
      3. Modérateur
        ;-)

        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....
    2. Modérateur
      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];