Position actuelle: Accueil> Derniers articles> Comment extraire l'ID vidéo YouTube avec Parse_Url?

Comment extraire l'ID vidéo YouTube avec Parse_Url?

gitbox 2025-05-29

Lors du traitement des liens vidéo, en particulier des plates-formes comme YouTube, l'extraction de l'identifiant unique (ID vidéo) d'une vidéo est une exigence commune dans de nombreux scénarios d'application. Par exemple, la conservation uniquement de l'ID vidéo est plus efficace et cohérente lorsque vous souhaitez intégrer un lien YouTube soumis à l'utilisateur dans une page Web ou pour l'enregistrer dans une base de données. Dans PHP, nous pouvons utiliser la fonction PARSE_URL intégrée pour implémenter cette fonction.

Cet article présentera comment extraire l'ID vidéo des liens YouTube en combinant Parse_Url avec d'autres fonctions.

1. Format de liaison YouTube

Dans les applications pratiques, le format de liaison de YouTube peut avoir les formulaires communs suivants:

  1. Lien standard:

     https://www.youtube.com/watch?v=VIDEO_ID
    
  2. Lien court:

     https://youtu.be/VIDEO_ID
    
  3. Lien d'intégration:

     https://www.youtube.com/embed/VIDEO_ID
    

2. Utilisez PARSE_URL pour extraire les informations

La fonction PARSE_URL peut décomposer une URL en plusieurs parties, telles que le schéma, l'hôte, le chemin, la requête, etc. En utilisant cette fonctionnalité, nous pouvons facilement analyser les liens YouTube.

 function extractYouTubeID($url) {
    $parsedUrl = parse_url($url);

    // Lien standard https://www.youtube.com/watch?v=VIDEO_ID
    if (isset($parsedUrl['host']) && strpos($parsedUrl['host'], 'youtube.com') !== false) {
        if (isset($parsedUrl['path']) && $parsedUrl['path'] === '/watch') {
            if (isset($parsedUrl['query'])) {
                parse_str($parsedUrl['query'], $queryParams);
                if (isset($queryParams['v'])) {
                    return $queryParams['v'];
                }
            }
        }

        // Lien d'intégration https://www.youtube.com/embed/VIDEO_ID
        if (strpos($parsedUrl['path'], '/embed/') === 0) {
            return substr($parsedUrl['path'], strlen('/embed/'));
        }
    }

    // Liaison courte https://youtu.be/VIDEO_ID
    if (isset($parsedUrl['host']) && $parsedUrl['host'] === 'youtu.be') {
        return ltrim($parsedUrl['path'], '/');
    }

    return null; // Format non reconnu
}

3. Exemple d'utilisation

 $links = [
    'https://www.youtube.com/watch?v=abc123XYZ',
    'https://youtu.be/abc123XYZ',
    'https://www.youtube.com/embed/abc123XYZ',
    'https://gitbox.net/watch?v=abc123XYZ', // Non YouTube nom de domaine,Devrait revenir null
];

foreach ($links as $link) {
    $videoId = extractYouTubeID($link);
    echo "Lien:$link\n";
    echo "vidéo ID:" . ($videoId ?? 'Non identifié') . "\n\n";
}

4. Choses à noter

  • Le code ci-dessus a pris en compte trois formulaires de liaison courants, mais dans une utilisation réelle, vous pouvez également rencontrer différentes commandes de paramètres et paramètres d'horodatage connectés. Afin d'améliorer la robustesse, davantage de vérifications peuvent être effectuées sur les paramètres après parse_str .

  • Soyez particulièrement prudent lors du remplacement des noms de domaine ou de l'identification des liens non-youtube pour garantir que seules les sources de confiance sont traitées.

Conclusion

Grâce à des fonctions intégrées telles que parse_url et parse_str , PHP peut analyser efficacement les URL et extraire des paramètres spécifiques. Cette méthode est non seulement simple, mais a également une bonne maintenabilité. L'encapsulez-le dans une fonction générale, qui peut être réutilisée dans divers projets et améliorer l'efficacité du développement.