Notice: Undefined offset: 1 [Résolu/Fermé]

Signaler
Messages postés
1863
Date d'inscription
jeudi 14 août 2008
Statut
Membre
Dernière intervention
2 avril 2017
-
ReDLoG
Messages postés
245
Date d'inscription
mardi 12 mars 2013
Statut
Membre
Dernière intervention
10 mars 2019
-
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

Messages postés
27671
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2020
2 137
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];


Messages postés
1863
Date d'inscription
jeudi 14 août 2008
Statut
Membre
Dernière intervention
2 avril 2017
156
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 ( ) 
jordane45
Messages postés
27671
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2020
2 137
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........
index
Messages postés
1863
Date d'inscription
jeudi 14 août 2008
Statut
Membre
Dernière intervention
2 avril 2017
156
Ah désolé, je suis pas un expert, merci de m'avoir aidé
jordane45
Messages postés
27671
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 février 2020
2 137
;-)

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....
Messages postés
245
Date d'inscription
mardi 12 mars 2013
Statut
Membre
Dernière intervention
10 mars 2019
53
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 (°!°)