Maison  >  Article  >  développement back-end  >  Expressions régulières PHP en action : correspondance de liens audio

Expressions régulières PHP en action : correspondance de liens audio

WBOY
WBOYoriginal
2023-06-22 21:47:081181parcourir

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.

  1. Analyser la structure du lien audio

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 :

  • Protocole : tel que http, https, ftp, etc.
  • Nom de domaine ou adresse IP : désigne le nom de domaine ou l'adresse IP du serveur où se trouve la ressource audio.
  • Numéro de port : fait référence au numéro de port utilisé pour accéder aux ressources audio.
  • Chemin : fait référence au chemin de la ressource audio sur le serveur.
  • Nom du fichier : fait référence au nom du fichier audio.
  • Extension : fait référence à l'extension du fichier audio, les plus courantes incluent mp3, wav, ogg, etc.

Par exemple, voici un lien audio typique :

http://www.example.com:8080/music/album01/song01.mp3
  1. Utiliser des expressions régulières pour faire correspondre des liens audio

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.

  1. Extraire les informations clés du lien audio

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.

  1. Décodage de l'encodage URI

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);
  1. Exemple de code complet

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn