忍者ブログ

カウンター

プロモーション

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2024/11/23 23:22

$_SERVER['SCRIPT_FILENAME']は実行されたスクリプトの位置を返すのではない!

PHP の調べ物

ふと$_SERVER['SCRIPT_FILENAME']はPHP の説明によると
「現在実行されているスクリプトの絶対パス」と書いてあるので
読み込んでいるスクリプト内で使われているなら、
読込先のフルパスが帰ってくるのか?
疑問に思ったのでやってみた。

include()
include_once()
require()
require_once()

などで呼び出している中で$_SERVER['SCRIPT_FILENAME']を使ってみた。

以下、
--------------------------(読み込むスクリプト)--------------------------
script_name.php
------------------------------------------------------------------------------
<?php
function scriptArea(){
 return $_SERVER['SCRIPT_FILENAME'];
}
?>


--------------------------(直接始めに実行するスクリプト)--------------------------
script_area_test.php
------------------------------------------------------------------------------
<?php
include_once "script_name.php";

echo "includeエリア:" . scriptArea() . "</br>";

echo "そのままエリア:" . $_SERVER['SCRIPT_FILENAME'];

?>
 

--------------------------実行結果--------------------------
includeエリア:C:/hogehoge/script_test_area.php
そのままエリア:C:/hogehoge/script_test_area.php


--------------------------結論--------------------------
実行しているスクリプトの名前であって、
読込先のスクリプト内を表示することは出来ない。
あくまでサーバが最初に処理し始めたスクリプトの
名前を返す様だ。


セキュリティーからすれば外部からの見通しがきかなくなる点では安全かもしれないが、
読み込みスクリプトのパスを欲している場合に、この方法で取得出来ないということみたいだ。

それもそのはず、結果からみた予想ではあるが、処理開始始めに決定される変数が
$_SERVERなんだろうと思う。たかがそれだけの事だが、されどそれだけの事だった。

一応メモ書きであぁ~るっ。

拍手[0回]

PR


  • 2011/05/15 05:52

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]