ホームページ > バックエンド開発 > PHPチュートリアル > PHPはどのようにURLを解析するのでしょうか? URL を解析する 5 つの方法の紹介

PHPはどのようにURLを解析するのでしょうか? URL を解析する 5 つの方法の紹介

青灯夜游
リリース: 2023-04-09 09:38:02
転載
8640 人が閲覧しました

PHPはどのようにURLを解析するのでしょうか? URL を解析する 5 つの方法の紹介

#PHP で URL を解析するためのいくつかの方法

#1. $_SERVER 組み込み配列変数を使用する

アクセス:

http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1

//URL的参数
echo $_SERVER['QUERY_STRING'];
返回:
m=admin&c=index&a=lists&catid=1&page=1
//包含文件名
echo $_SERVER["REQUEST_URI"];
ログイン後にコピー
Return :


/test.php?m=admin&c=index&a=lists&catid=1&page=1
ログイン後にコピー

2. pathinfo 組み込み関数

echo "
";
$url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top';
var_export(pathinfo($url));
ログイン後にコピー

を使用します。 Return:

array (
  'dirname' => 'http://localhost',
  'basename' => 'test.php?m=admin&c=index&a=lists&catid=1&page=1#top',
  'extension' => 'php?m=admin&c=index&a=lists&catid=1&page=1#top',
  'filename' => 'test',
)
ログイン後にコピー

3. を使用します。 parse_url 組み込み関数

echo "
";
$url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top';
var_export(parse_url($url));
ログイン後にコピー

Return:

array (
  'scheme' => 'http',
  'host' => 'localhost',
  'path' => '/test.php',
  'query' => 'm=admin&c=index&a=lists&catid=1&page=1',
  'fragment' => 'top',
)
ログイン後にコピー

4.basename 組み込み関数

echo "
";
$url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top';
var_export(basename($url));
ログイン後にコピー

Return: ## を使用します。 #
test.php?m=admin&c=index&a=lists&catid=1&page=1#top
ログイン後にコピー

5. 通常の一致

echo "
";
$url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top';
preg_match_all("/(\w+=\w+)(#\w+)?/i",$url,$match);
var_export($match);
ログイン後にコピー
戻り値:

array (
  0 => 
  array (
    0 => 'm=admin',
    1 => 'c=index',
    2 => 'a=lists',
    3 => 'catid=1',
    4 => 'page=1#top',
  ),
  1 => 
  array (
    0 => 'm=admin',
    1 => 'c=index',
    2 => 'a=lists',
    3 => 'catid=1',
    4 => 'page=1',
  ),
  2 => 
  array (
    0 => '',
    1 => '',
    2 => '',
    3 => '',
    4 => '#top',
  ),
)
ログイン後にコピー

一般的な URL 処理メソッド

/**
 * 将字符串参数变为数组
 * @param $query
 * @return array
 */
function convertUrlQuery($query)
{
    $queryParts = explode('&', $query);
    $params = array();
    foreach ($queryParts as $param) {
        $item = explode('=', $param);
        $params[$item[0]] = $item[1];
    }
    return $params;
}

/**
 * 将参数变为字符串
 * @param $array_query
 * @return string
 */
function getUrlQuery($array_query)
{
    $tmp = array();
    foreach ($array_query as $k => $param) {
        $tmp[] = $k . '=' . $param;
    }
    $params = implode('&', $tmp);
    return $params;
}
ログイン後にコピー
例:

echo "
";
$url = 'http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top';
$arr = parse_url($url);
$arr_query = convertUrlQuery($arr['query']);
var_export($arr_query);
ログイン後にコピー

戻り値:

array (
  'm' => 'admin',
  'c' => 'index',
  'a' => 'lists',
  'catid' => '1',
  'page' => '1',
)
ログイン後にコピー
var_export(getUrlQuery($arr_query));
ログイン後にコピー

戻り値:

m=admin&c=index&a=lists&catid=1&page=1
ログイン後にコピー

推奨される関連チュートリアル: 「PHP チュートリアル」

"

以上がPHPはどのようにURLを解析するのでしょうか? URL を解析する 5 つの方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート