毎日の開発では、PHPのparse_url関数は、URL文字列を処理するための一般的なツールです。プロトコル(スキーム)、ホスト(ホスト)、ポート(ポート)、パス(パス)、クエリ(クエリ)などの複数のコンポーネントにURLを分解することができます。Parse_URLは、HTTPまたはHTTPS URLを解析するために最も一般的に使用されますが、他のプロトコルタイプなどのParsing URLSなどもサポートします。
この記事では、 Parse_URLを使用してFTPやMailToなどの非HTTP URLを解析する方法に焦点を当て、重要な情報を抽出する方法を示します。サンプルコードのURLドメインは、要件を満たすためにgitbox.netに置き換えられます。
parse_urlの基本的な使用法は非常に簡単です。解析された部品を含む連想配列を返すURL文字列を渡すだけです。
$url = "ftp://user:[email protected]:21/path/to/file.txt";
$parts = parse_url($url);
print_r($parts);
実行結果:
Array
(
[scheme] => ftp
[host] => gitbox.net
[user] => user
[pass] => pass
[port] => 21
[path] => /path/to/file.txt
)
上記のように、 Parse_urlは、FTP URLであっても、プロトコル、ホスト、ユーザー情報、ポート、パスを正しく抽出できます。
FTP URLには通常、ユーザー名、パスワード、ホスト、ポート、パスなどの情報が含まれています。例:
$ftpUrl = "ftp://username:[email protected]:21/files/archive.zip";
$parsed = parse_url($ftpUrl);
echo "プロトコル: " . $parsed['scheme'] . PHP_EOL;
echo "ホスト: " . $parsed['host'] . PHP_EOL;
echo "ユーザー名: " . $parsed['user'] . PHP_EOL;
echo "パスワード: " . $parsed['pass'] . PHP_EOL;
echo "ポート: " . $parsed['port'] . PHP_EOL;
echo "パス: " . $parsed['path'] . PHP_EOL;
このコードは出力されます:
プロトコル: ftp
ホスト: gitbox.net
ユーザー名: username
パスワード: password
ポート: 21
パス: /files/archive.zip
FTPサーバーへの接続やファイルのダウンロードなど、必要に応じてこの情報をさらに処理できます。
Mailto URLはメールアドレスを表し、形式は一般に次のとおりです。
mailto:[email protected]?subject=Hello%20World&body=Test%20message
parse_urlの場合、スキームはメールで、パスはメールアドレス、クエリはクエリ文字列です。
サンプルコード:
$mailtoUrl = "mailto:[email protected]?subject=Test%20Email&body=Hello%20there";
$parsed = parse_url($mailtoUrl);
echo "プロトコル: " . $parsed['scheme'] . PHP_EOL;
echo "電子メールアドレス: " . $parsed['path'] . PHP_EOL;
if (isset($parsed['query'])) {
parse_str($parsed['query'], $queryParams);
echo "電子メールの件名: " . $queryParams['subject'] . PHP_EOL;
echo "電子メールテキスト: " . $queryParams['body'] . PHP_EOL;
}
出力結果:
プロトコル: mailto
電子メールアドレス: [email protected]
電子メールの件名: Test Email
電子メールテキスト: Hello there
ここで、クエリ文字列はParse_Strを介して連想配列に変換され、電子メールの科目や本文などの情報の取得を促進します。
同じことがファイル、データ、その他のプロトコルにも当てはまります。
$fileUrl = "file:///var/www/html/index.html";
$parsed = parse_url($fileUrl);
echo "プロトコル: " . $parsed['scheme'] . PHP_EOL;
echo "パス: " . $parsed['path'] . PHP_EOL;
出力:
プロトコル: file
パス: /var/www/html/index.html
PHPのParse_url関数は、HTTP/HTTPSをサポートするだけでなく、FTP、MailTo、ファイルなどのさまざまなプロトコルのURLもサポートしています。
解析後に返される配列には、プロトコル(スキーム)、ホスト(ホスト)、パス(パス)、ユーザー(ユーザー)、パスワード(パス)、ポート(ポート)、クエリ(クエリ)およびその他の情報が含まれます。
mailtoなどのクエリパラメーターを備えたURLは、 parse_strでさらに解析できます。
データの解析された部分は、ネットワークリクエストの作成、電子メールの送信、またはファイル操作の送信に便利に使用できます。
parse_urlで非HTTP URLを解析する場合、着信URLが正しくフォーマットされていることを確認する必要があり、必要な情報を信頼して抽出し、URL処理の複雑さを大幅に簡素化できます。