必要な変数
現在のページのURLアドレスを見つけるには、次のスーパーグローバル変数が必要です。
スーパーグローバル変数 | 目的 |
---|---|
$ _SERVER [‘HTTPS’] | 戻ります オン 現在のページのURLでHTTPSプロトコルが使用されている場合。 |
$ _SERVER [‘HTTP_HOST’] | 現在のページのサーバーの名前を返します。 |
$ _SERVER [‘REQUEST_URI’] | 要求されたリソース名を返します。 |
$ _SERVER [‘SERVER_PORT’] | サーバーのポート番号を返します。 |
$ _SERVER [‘QUERY_STRING’] | 現在のページのURLアドレスに存在する場合は、クエリ文字列値を返します。 |
例1:条件ステートメントを使用して現在のページのURLを表示する
次の例は、条件ステートメントを使用して、現在のページのURLで使用されているプロトコルを取得する方法を示しています。次のスクリプトを使用してPHPファイルを作成します。
$ _SERVER [‘HTTP_HOST’]の値は、現在のURLのドメイン名を取得するために使用されます。 $ _SERVER [‘REQUEST_URI’]の値は、要求されたリソースの名前を取得するために使用されます。 なくなった) 関数は、$ _ SERVER [‘HTTPS’]が設定されているかどうかを確認するために使用され、設定されている場合は、$ _ SERVER [‘HTTPS’]の値が設定されているかどうかを確認します。 オン か否か。次に、これら3つの変数の値を「//:」と組み合わせて、現在のページの完全なURLを取得します。
//現在のページのドメイン名を読み取ります
$ domain = $ _SERVER[「HTTP_HOST」];
//要求されたリソースを読み取ります
$ resource = $ _SERVER['REQUEST_URI'];
//現在のURLのプロトコルを調べます
もしも(( なくなった (($ _SERVER[「HTTPS」])。 && $ _SERVER[「HTTPS」] === 'オン')。
$プロトコル = 「https」;
そうしないと
$プロトコル = 「http」;
//すべての部分を組み合わせて完全なURLアドレスを取得します
$ url = $プロトコル。'://'。$ domain。$ resource;
//現在のページのURLアドレスを出力します
捨てた '
現在のURLアドレス
ページは:
'。 $ url;?> 出力:
サーバーからスクリプトを実行すると、次の出力が表示されます。 $ _SERVER [‘HTTPS’]の値は オン ローカルサーバー用。したがって、出力は http 現在のURLのプロトコル。
例2:三項演算子を使用して現在のページのURLを表示する
次の例は、三項演算子を使用して現在のページの完全なURLを取得する方法を示しています。次のスクリプトを使用してPHPファイルを作成します。
もしも 前の例では、現在のページのURLで使用されているプロトコルを見つけるために条件が使用されています。このスクリプトの三項演算子を使用して、同じタスクが実行されます。 なくなった) 関数は、$ _ SERVER [‘HTTPS’]が設定されているかどうか、および$ _SERVER [‘HTTPS’]の値が設定されているかどうかを確認するために使用されます。 オン、 次に、三項演算子はHTTPSを返します。それ以外の場合は、HTTPを返します。 URLの他の部分は、前の例のように取得および印刷されます。
//現在のURLのプロトコルを調べます
$プロトコル = (( なくなった (($ _SERVER[「HTTPS」])。 && $ _SERVER[「HTTPS」]
== 'オン'?「https」 : 「http」)。;
//現在のページのドメイン名を読み取ります
$ domain = $ _SERVER[「HTTP_HOST」];
//要求されたリソースを読み取ります
$ resource = $ _SERVER['REQUEST_URI'];
//すべての部分を組み合わせて完全なURLアドレスを取得します
$ url = $プロトコル。'://'。$ domain。$ resource;
//現在のページのURLアドレスを出力します
捨てた '
現在のページのURLアドレスは次のとおりです。
'。 $ url;?>
出力:
サーバーからスクリプトを実行すると、次の出力が表示されます。 $ _SERVER [‘HTTPS’]の値は オン ローカルサーバー用。したがって、出力には現在のURLのHTTPプロトコルが表示されます。
例3:ポート番号に基づいて現在のページのURLを表示する
前の2つの例では、$ _ SERVER [‘HTTPS’]の値を使用して、ページの現在のURLのプロトコルを検索し、URLでクエリ文字列を使用していません。次の例は、$ _ SERVER [‘SERVER_PORT’]変数を使用してプロトコルを検索し、クエリ文字列を使用して完全なURLアドレスを取得する方法を示しています。次のスクリプトを使用してPHPファイルを作成します。
ここでは、複数の論理条件と三項演算子を使用してプロトコルを見つけます。 $ _SERVER [‘HTTPS’]の値が空であるか、次のように設定されている場合 オフ、 次に、$ _ SERVER [‘SERVER_PORT’]の値をチェックして、現在のURLのプロトコルを見つけます。 $ _SERVER [‘QUERY_STRING’]変数は、URLからクエリ文字列値を取得するために使用されます。
//現在のURLのプロトコルを調べます
$プロトコル = ((((! 空の (($ _SERVER[「HTTPS」])。 && $ _SERVER[「HTTPS」]
!= 'オフ')。 || $ _SERVER['サーバポート'] == 443)。?'https://' : 'http://';
//現在のページのドメイン名を読み取ります
$ domain = $ _SERVER[「HTTP_HOST」];
//要求されたリソースを読み取ります
$ resource = $ _SERVER['REQUEST_URI'];
//クエリ文字列値を読み取ります
$ query = $ _SERVER['クエリ文字列'];
//すべての部分を組み合わせて完全なURLアドレスを取得します
$ url = $プロトコル。$ domain。$ resource;
//現在のページのURLアドレスを出力します
捨てた '
現在のページの完全なURLアドレスは次のとおりです。
'。 $ url;//クエリ文字列部分を出力します
捨てた '
クエリ文字列は次のとおりです。
'。 $ query;?>
出力:
上記のスクリプトをサーバーからクエリ文字列なしで実行すると、次の出力が表示されます。 URLにクエリ文字列は含まれていません。したがって、出力には空のクエリ文字列が表示されます。
サーバーからクエリ文字列を使用して上記のスクリプトを実行すると、次の出力が表示されます。次の出力は、クエリ文字列とクエリ文字列を別々に含むURLアドレスを示しています。
結論
このチュートリアルでは、さまざまな例を使用して、現在のページの完全なURLを取得するさまざまな方法を示します。このチュートリアルでは、URLとクエリ文字列を分離する方法も示しています。うまくいけば、このチュートリアルは、読者がPHPスクリプトを使用して現在のページの完全なURLを読み取る方法を知るのに役立つでしょう。