2012-01-20 8 views

答えて

7

__FILE__マジックコンサルタントはファイルのファイル名に評価されます。パスなしでファイル名を取得するにはbasename(__FILE__)を使用してください。

参照:http://www.php.net/manual/en/language.constants.predefined.php

$_SERVER['PHP_SELF']は、現在実行されるスクリプトの名前に設定されています。

参照:http://php.net/manual/en/reserved.variables.server.php

+0

\ _ \ _ FILE__はキールックアップを伴わないので、$ _SERVER ['PHP_SELF']よりも少し効率的です。 – Polynomial

+0

@ Polynominal:しかし、必ずしも同じ値を含んでいるとは限りません(例えば、実行されたスクリプトのファイルに含まれています)。 – Mchl

+0

ああ、はい、本当です。 'PHP_SELF'は要求されたスクリプト(インクルードに関係なく)を与えます、' __FILE__'はあなたに現在の実行スクリプトを与えます。もちろん、あなたがどこにも含まれていないスクリプト(たとえ直接要求されたスクリプトでも)の中にある場合、 '__FILE__'定数がより良い選択です。 – Polynomial

2
echo __FILE__ ; 

あなたは、basename(__FILE__)を使用predefined constants in phpを見てみることができますフルネーム

0

があり、$_SERVER内のスクリプトについての興味深い情報がたくさんちょうどprint_r($_SERVER);と研究を使用し、またあります値。

1

はい、basename__FILE__のマジック定数を組み合わせてください。

echo basename(__FILE__); 
0

(ウェブサーバで)SAPIモードで実行されている、あなたは$_SERVER['SCRIPT_NAME']を使用することができます。 CLIモード(コマンドライン)には、$argv[0]があります($ argvにはコマンドライン引数が含まれ、要素0には常にスクリプト名が入ります)。

0

$_SERVER['PHP_SELF']は、実行中のスクリプトへのパスを示します。実際に実行されているスクリプトによってインポートされた別のファイルにコードが存在する可能性があるため、これは__FILE__よりも優れたソリューションです。