ホームページ >バックエンド開発 >PHPチュートリアル >URLの解析におけるphpのparse_str()関数とparse_url()関数の違い

URLの解析におけるphpのparse_str()関数とparse_url()関数の違い

怪我咯
怪我咯オリジナル
2017-05-27 10:46:202042ブラウズ

PHP には URL を解析する関数が 2 つあります。parse_str() 関数と parse_url() 関数です。parse_str 関数はクエリ文字列を変数に解析し、parse_url 関数は URL 全体を解析してそのコンポーネントを返すために使用されます。 . 前回の

記事でもこれら2つの関数についてそれぞれ説明しましたが、この記事では主にURLを解析する際のphpのparse_str()関数とparse_url()関数の使い方と違いを紹介します。

まずphpを見てみましょうparse_str関数

phpのparse_str関数は、クエリ文字列を変数に解析します。

parse_str 関数には 2 つのパラメータがあります。最初のパラメータは解析する必要があるクエリ文字列であり、2 番目のパラメータは解析されたクエリ文字列を受け取る変数を設定するために使用されます。次の例を参照してください:

ここでは、parse_url を使用して URL のクエリ文字列を取得します。parse_url 関数については以下で説明します。

<?php
$url_name=&#39;http://www.php.cn/mytest.php?uid=5&pages=2&category=3&#39;;
$urlarr=parse_url($url_name);

//指定第二个参数
parse_str($urlarr[&#39;query&#39;],$parr);//$urlarr[&#39;query&#39;]的值为:uid=5&pages=2&category=3&#39;
print_r($parr);
echo "<br/><br/>";

//不指定第二个参数
parse_str($urlarr[&#39;query&#39;]);
echo $uid."<br/>";
echo $pages."<br/>";
echo $category."<br/>";

?>

コード実行結果:

URLの解析におけるphpのparse_str()関数とparse_url()関数の違い

第 2 パラメータを設定した場合と設定しない場合では、解析された値の取得方法が異なることがわかります。

2 番目のパラメータを設定すると、解析されたクエリ文字列を配列の形式で直接出力できます。

2 番目のパラメータは設定されておらず、値を取得するにはクエリ文字列のパラメータ名を変数名として使用する必要があります。

php parse_url

php parse_url 関数は URL を解析し、URL に表示されるさまざまなコンポーネントを含む連想配列を返します。

この関数は、指定された URL の有効性を検証するために使用されるのではなく、URL を以下にリストされている部分に分割するために使用されます。不完全な URL も受け入れられ、parse_url() はそれらをできるだけ正確に解析しようとします。

次の例を参照してください:

<?
$test = parse_url("http://www.php.cn/index.php?name=tank&sex=1#top");
print_r($test);
?>

コード実行結果:

URLの解析におけるphpのparse_str()関数とparse_url()関数の違い

この関数は次のように使用することもできます:

<?php
header("content-type:text/html;charset=utf-8");
$url ="http://www.php.cn/index.php?name=tank&sex=1#top";
echo "scheme:".parse_url($url,PHP_URL_SCHEME)."<br/>";
echo "host:".parse_url($url,PHP_URL_HOST)."<br/>";
echo "path:".parse_url($url,PHP_URL_PATH)."<br/>";
echo "query:".parse_url($url,PHP_URL_QUERY)."<br/>";
echo "fragment:".parse_url($url,PHP_URL_FRAGMENT)."<br/>";
?>

コード実行結果:

URLの解析におけるphpのparse_str()関数とparse_url()関数の違い

【関連記事の推奨】:

1 .phpのparse_url()関数の定義と使い方を詳しく解説

2.phpのparse_str()関数を例付きで解説

以上がURLの解析におけるphpのparse_str()関数とparse_url()関数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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