Maison > Article > développement back-end > Expressions régulières PHP en action : correspondance de liens audio
Avec le développement de l'industrie audio, de plus en plus de sites Web et d'applications doivent prendre en charge l'identification et l'intégration automatiques des liens audio. Dans le processus de mise en œuvre des développeurs, l'utilisation d'expressions régulières pour faire correspondre les liens audio est une méthode courante. Cet article explique comment faire correspondre les liens audio et extraire les informations clés dans les expressions régulières PHP.
Avant de faire correspondre le lien audio, nous devons comprendre la structure du lien audio. Généralement, le lien audio comprend les parties suivantes :
Par exemple, voici un lien audio typique :
http://www.example.com:8080/music/album01/song01.mp3
Avec une compréhension de la structure des liens audio, nous pouvons utiliser des expressions régulières pour faire correspondre des liens audio. Supposons que nous souhaitions extraire tous les liens audio d'une page HTML, nous pouvons écrire l'expression régulière suivante :
$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';
Cette expression régulière correspond d'abord à la chaîne se terminant par .mp3 dans la valeur de l'attribut href. Notez que le mode non gourmand (U) est utilisé ici pour éviter de faire correspondre une partie de plusieurs liens.
Après avoir utilisé des expressions régulières pour faire correspondre le lien audio, nous devons également en extraire des informations clés, telles que le protocole, le nom de domaine, le chemin, le nom de fichier, etc. Vous pouvez utiliser les fonctions intégrées de PHP pour réaliser cette étape.
Par exemple, on peut utiliser la fonction parse_url() pour extraire le protocole, le nom de domaine, le chemin et le nom du fichier dans le lien :
$url = 'http://www.example.com:8080/music/album01/song01.mp3'; $parse = parse_url($url); $scheme = $parse['scheme']; // 返回"http" $host = $parse['host']; // 返回"www.example.com" $port = $parse['port']; // 返回"8080" $path = $parse['path']; // 返回"/music/album01/song01.mp3" $filename = basename($path); // 返回"song01.mp3"
A noter que la fonction parse_url() ne peut pas extraire directement le nom du fichier, vous vous devez utiliser la fonction basename() pour extraire.
Dans certains cas, les chemins et les noms de fichiers dans les liens peuvent être codés en URL. Vous pouvez utiliser la fonction urldecode() en PHP pour décoder.
Par exemple, nous pouvons utiliser le code suivant pour décoder le chemin et le nom du fichier dans le lien :
$path = urldecode($path); $filename = urldecode($filename);
Enfin, regardons un exemple de code complet qui extrait d'une page HTML et affiche le informations clés de tous les liens audio :
$html = '......'; $pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU'; preg_match_all($pattern, $html, $matches); $urls = $matches[1]; foreach ($urls as $url) { $parse = parse_url($url); $scheme = $parse['scheme']; $host = $parse['host']; $port = $parse['port']; $path = $parse['path']; $filename = basename($path); $path = urldecode($path); $filename = urldecode($filename); echo "协议:$scheme
"; echo "域名:$host
"; echo "端口号:$port
"; echo "路径:$path
"; echo "文件名:$filename
"; }
Comme vous pouvez le voir dans l'exemple de code ci-dessus, il n'est pas difficile d'utiliser des expressions régulières pour faire correspondre les liens audio et extraire les informations clés. Les développeurs n'ont qu'à combiner des expressions régulières et des fonctions intégrées PHP. pour réaliser cette fonction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!