PHP 学習者は、$_SERVER がヘッダー、パス、スクリプトの場所などの情報を含む配列であることを知っているはずです。明らかに、PHP は主に $_SERVER システム変数を使用して、現在のページの完全な URL アドレスを取得します。
# PHP で完全な URL を取得する実装方法を具体例を用いて紹介します。
最初に $_SERVER を直接出力します。コード例は次のとおりです。
<?php echo "<pre class="brush:php;toolbar:false">"; var_dump($_SERVER);
出力結果、いくつかのスクリーンショットは次のとおりです。
$_SERVER の出力結果は図のとおり、41 個の要素を含む配列になります。
では、現在の完全な URL を取得するにはどうすればよいでしょうか?つまり、現在のページが HTTP か HTTPS かをどのように判断し、ドメイン名とパスを取得するかということです。
解決策のコードは次のとおりです。
<?php $uri = $_SERVER['REQUEST_URI']; echo $uri;//输出:URI echo "<br>"; $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://": "http://"; $url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;//输出完整的url
ここで、 $uri はファイルのパス アドレスを取得すること、つまり REQUEST_URI 添字の値を取得することです。次に、上記の方法を使用して、現在の URL ヘッダーが HTTP または https で始まるかどうかを確認します。最後に、ヘッダー転送プロトコル、ドメイン名、ファイル アドレス パスを含む完全な URL の 3 つの部分を結合します。
結果は次のようになります。
図に示すように、現在のページの完全な URL アドレスを取得することに成功しました。
注:
'REQUEST_URI'、URIはアクセスするページを指定するために使用されます。
'HTTPS' は、スクリプトが HTTPS プロトコル経由でアクセスされる場合、空ではない値に設定されます。
'SERVER_PORT', Web サーバーによって使用されるポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。 ($_SERVER['SERVER_PORT'] が 443 に等しい場合は、URL に直接アクセスできることを意味します。8443 に等しい場合は、ポート番号にアクセスする必要があることを意味します。)
'HTTP_HOST'、現在のリクエスト ヘッダー内の Host: 項目の内容 (存在する場合)。
この記事は、PHP で現在の完全な URL アドレスを取得する方法の紹介です。これも非常にシンプルで理解しやすいものです。
以上がPHPで現在の完全なURLアドレスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。