2

バットを実行しようとすると、このファイルでこの変数にアクセスしようとします:

$_SERVER['SERVER_NAME']

しかし、このインデックスは存在しません。実際、しようとすると、インデックスprint_r($_SERVER)がありません 。SERVER_NAME理由がありますか?この機能をバットで起動したからですか?この変数を取得するための他の解決策はありますか?

ありがとうございました !

4

3 に答える 3

7

変数はサーバー環境 (Apache または別の Web サーバーを介して PHP をホストしている)$_SERVERでのみ使用できるため、コマンド ラインから起動する場合は使用できません。このオブジェクトのパラメーターは、HTTP ヘッダーによって入力されますが、この場合は存在しません。

が設定されていない$_SERVERときにオブジェクトを無視する場合は、別の方法で使用できますが、オペレーティング システムによって距離が異なる場合があります。SERVER_NAMEphp_uname("n")

$server_name = (isset($_SERVER['SERVER_NAME']))? // check if SERVER_NAME is set
    $_SERVER['SERVER_NAME'] :                    // if yes, use HTTP header value
    php_uname("n");                             // if no, use php_uname()
于 2012-11-05T14:31:34.097 に答える
1

試す

echo %COMPUTERNAME%

代わりに、bat ファイルを使用して起動している場合。

于 2012-11-05T14:31:56.820 に答える
0

この変数は、 Host HTTP ヘッダー フィールド$_SERVER['SERVER_NAME']で HTTP クライアントによって提供されるサーバーの名前を保持します。HTTP を使用しないため、この変数は定義されていません。

于 2012-11-05T14:31:48.073 に答える