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.
Dans les applications pratiques, le format de liaison de YouTube peut avoir les formulaires communs suivants:
Lien standard:
https://www.youtube.com/watch?v=VIDEO_ID
Lien court:
https://youtu.be/VIDEO_ID
Lien d'intégration:
https://www.youtube.com/embed/VIDEO_ID
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
}
$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";
}
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.
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.