ホームページ  >  記事  >  バックエンド開発  >  PHP 正規表現の動作: オーディオ リンクのマッチング

PHP 正規表現の動作: オーディオ リンクのマッチング

WBOY
WBOYオリジナル
2023-06-22 21:47:081132ブラウズ

オーディオ業界の発展に伴い、オーディオ リンクの自動識別と埋め込みをサポートする必要がある Web サイトやアプリケーションがますます増えています。開発者の実装プロセスでは、正規表現を使用して音声リンクを照合するのが一般的な方法です。この記事では、PHP 正規表現で音声リンクを照合し、重要な情報を抽出する方法を紹介します。

  1. 音声リンクの構造を分析する

音声リンクを照合する前に、音声リンクの構造を理解する必要があります。通常、オーディオ リンクには次の部分が含まれます:

  • プロトコル: http、https、ftp など。
  • ドメイン名または IP アドレス: オーディオ リソースが配置されているサーバーのドメイン名または IP アドレスを指します。
  • ポート番号: オーディオ リソースへのアクセスに使用されるポート番号を指します。
  • パス: サーバー上のオーディオ リソースのパスを指します。
  • ファイル名: オーディオ ファイルの名前を指します。
  • 拡張子: オーディオ ファイルの拡張子を指します。一般的な拡張子には、mp3、wav、ogg などが含まれます。

たとえば、次は一般的な音声リンクです:

http://www.example.com:8080/music/album01/song01.mp3
  1. 正規表現を使用して音声リンクと一致させる

音声リンクを使用する構造が分かれば、正規表現を使用して音声リンクを照合できます。 HTML ページからすべてのオーディオ リンクを抽出するとします。次の正規表現を記述できます。

$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';

この正規表現は、まず、href 属性値文字列内の .mp3 で終わる文字と一致します。ここでは、複数のリンクの一部の一致を避けるために、非貪欲モード (U) が使用されていることに注意してください。

  1. オーディオ リンクの重要な情報を抽出する

正規表現を使用してオーディオ リンクを照合した後、そこからプロトコル、ドメインなどの重要な情報を抽出する必要もあります。名前、パス、ファイル名など。 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() 関数を使用して抽出する必要があります。

  1. URI エンコードのデコード

場合によっては、リンク内のパスとファイル名が URL エンコードされることがあります。 PHP の urldecode() 関数を使用してデコードできます。

たとえば、次のコードを使用して、リンク内のパスとファイル名をデコードできます:

$path = urldecode($path);
$filename = urldecode($filename);
  1. 完全なコード例

最後に、 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。