PHPでURLを処理する場合、 parse_url()関数は非常に実用的なツールです。 URL文字列をコンポーネントに解析し、連想配列を返すことができます。これにより、開発者がその情報を抽出することが容易になります。この記事では、基本的な使用法、 parse_url()のパラメーター説明、および実際の開発におけるいくつかのアプリケーションシナリオを詳細に紹介します。
parse_url()は、スキーム(プロトコル)、ホスト(ホスト名)、ポート(ポート番号)、ポート(ユーザー名)、パス(パスワード)、パス(パス)、クエリ(クエリ文字列)、フラグメント(アンカーポイント)など、URLを解析してURLのさまざまなコンポーネントを返す組み込みPHP関数です。
関数定義は次のとおりです。
array parse_url(string $url, int $component = -1)
$ url :必須。解析する必要があるURL文字列。
$コンポーネント:オプション。セクションが指定されている場合、完全な配列ではなく、そのセクションの値のみが返されます。 php_url_scheme 、 php_url_hostなど、事前定義された定数が使用されます。
$url = "https://user:[email protected]:8080/path/index.php?query=php&id=100#section";
$parts = parse_url($url);
print_r($parts);
出力:
Array
(
[scheme] => https
[host] => gitbox.net
[port] => 8080
[user] => user
[pass] => pass
[path] => /path/index.php
[query] => query=php&id=100
[fragment] => section
)
$url = "https://gitbox.net/page.php?id=5";
$host = parse_url($url, PHP_URL_HOST);
echo $host; // 出力:gitbox.net
絶え間ない | 説明する | 例の返品値 |
---|---|---|
php_url_scheme | プロトコルに戻ります | https |
php_url_host | ホスト名を返します | gitbox.net |
php_url_port | ポートに戻ります | 8080 |
php_url_user | ユーザー名に戻ります | ユーザー |
php_url_pass | パスワードに戻ります | 合格 |
php_url_path | パスを返す | /path/index.php |
php_url_query | クエリ文字列を返します | query = php&id = 100 |
php_url_fragment | アンカーポイントに戻ります | セクション |
解析が故障するか、着信URLが違法である場合、 parse_url()はfalseを返します。
parse_url()は、URLの有効性を検証せず、構文レベルで文字列を解析するだけです。
一部のURLパーツは存在しない可能性があるため、返された配列には必ずしもすべてのキー名が含まれているわけではありません。それを使用するときは、 Isset()を使用して判断を下します。
$url = "https://gitbox.net/page.php?name=php&version=8";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $params);
print_r($params);
出力:
Array
(
[name] => php
[version] => 8
)
$url = "https://sub.gitbox.net/resource";
$host = parse_url($url, PHP_URL_HOST);
if (strpos($host, 'gitbox.net') !== false) {
echo "法的ドメイン名";
} else {
echo "違法ドメイン名";
}
parse_url()は、PHPでURLを解析するための強力なツールです。 URL文字列を簡単に分解し、必要な情報を抽出するのに役立ちます。ジャンプリンク、APIリクエスト、パラメーター検証などのシナリオを処理するときに非常に一般的に使用されます。個々のパラメーターと返信値の意味を理解することは、より堅牢なPHPコードを作成するために非常に重要です。