1. ホーム
  2. php

[解決済み] PHPでベースURLを取得する方法を教えてください。

2022-04-28 01:50:26

質問

を使っています。 XAMPP をWindows Vista上で動作させています。私の開発環境では http://127.0.0.1/test_website/ .

どうすれば http://127.0.0.1/test_website/ をPHPで作成することはできますか?

これらのようなものを試しましたが、どれもうまくいきませんでした。

echo dirname(__FILE__)
or
echo basename(__FILE__);
etc.

解決方法は?

これを試してみてください。

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

の詳細については、こちらをご覧ください。 $_SERVER 定義済み変数 .

httpsを使用する予定がある場合は、これを使用することができます。

function url(){
  return sprintf(
    "%s://%s%s",
    isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
    $_SERVER['SERVER_NAME'],
    $_SERVER['REQUEST_URI']
  );
}

echo url();
#=> http://127.0.0.1/foo

1回あたり この回答 に安全に依存できるように、Apache を適切に設定してください。 SERVER_NAME .

<VirtualHost *>
    ServerName example.com
    UseCanonicalName on
</VirtualHost>

ノート : もし、あなたが HTTP_HOST キー(ユーザー入力が含まれる)の場合は、スペース、カンマ、キャリッジリターンなどを削除して、まだクリーンアップする必要があります。ドメインに有効な文字でないものはすべて。PHP のビルトインを確認します。 パース_url 関数の例を示します。