オーディオ業界の発展に伴い、オーディオ リンクの自動識別と埋め込みをサポートする必要がある Web サイトやアプリケーションがますます増えています。開発者の実装プロセスでは、正規表現を使用して音声リンクを照合するのが一般的な方法です。この記事では、PHP 正規表現で音声リンクを照合し、重要な情報を抽出する方法を紹介します。
音声リンクを照合する前に、音声リンクの構造を理解する必要があります。通常、オーディオ リンクには次の部分が含まれます:
たとえば、次は一般的な音声リンクです:
http://www.example.com:8080/music/album01/song01.mp3
音声リンクを使用する構造が分かれば、正規表現を使用して音声リンクを照合できます。 HTML ページからすべてのオーディオ リンクを抽出するとします。次の正規表現を記述できます。
$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';
この正規表現は、まず、href 属性値文字列内の .mp3 で終わる文字と一致します。ここでは、複数のリンクの一部の一致を避けるために、非貪欲モード (U) が使用されていることに注意してください。
正規表現を使用してオーディオ リンクを照合した後、そこからプロトコル、ドメインなどの重要な情報を抽出する必要もあります。名前、パス、ファイル名など。 PHP の組み込み関数を使用して、このステップを実行できます。
たとえば、parse_url() 関数を使用して、リンク内のプロトコル、ドメイン名、パス、およびファイル名を抽出できます。
$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"
parse_url() 関数はファイル名は直接抽出できません。basename() 関数を使用して抽出する必要があります。
場合によっては、リンク内のパスとファイル名が URL エンコードされることがあります。 PHP の urldecode() 関数を使用してデコードできます。
たとえば、次のコードを使用して、リンク内のパスとファイル名をデコードできます:
$path = urldecode($path); $filename = urldecode($filename);
最後に、 HTML ページからすべてのオーディオ リンクの重要な情報を抽出して出力する完全なコード例を見てみましょう:
$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
"; }
上記のコード例からわかるように、オーディオ リンクの一致には正規表現が使用されます。開発者は正規表現と PHP 組み込み関数を組み合わせるだけで、この機能を実現できます。
以上がPHP 正規表現の動作: オーディオ リンクのマッチングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。