にゃあ

getcwd()とdirname(__FILE__)は違う結果になるときがある

phpでの話です。

getcwd()とdirname(__FILE__)はカレントディレクトリのパスを取得するという点で同じように説明されますが、require(_once)やinclude(_once)が絡むと、全く異なった結果を返します。

実験として、次のようなファイルを作成しました。
C:/UsbWebServer/Root/phptest/getcwd.php
C:/UsbWebServer/Root/phptest/getcwd/dir/ect/ory/include.php

getcwd.phpはindex.phpをrequireしています。

getcwd.php

<?php

require 'getcwd/dir/ect/ory/include.php';

?>

include.phpには、getcwd()とdirname(__FILE__)の結果を出力する処理を書きました。

<?php

echo 'getcwd() : ';
var_dump(getcwd());
echo '<br />dirname(__FILE__) : ';
var_dump(dirname(__FILE__));

?>

以上の前提でgetcwd.phpを実行(ブラウザでアクセス)したところ、次のような結果になりました。

getcwd() : string(28) "C:\UsbWebServer\Root\phptest"
dirname(__FILE__) : string(47) "C:\UsbWebServer\Root\phptest\getcwd\dir\ect\ory"

上の結果をまとめると次のようになります。

getcwd()はアクセス中のファイルがあるディレクトリ
dirname(__FILE__) はそれが書かれているファイルがあるディレクトリ


コメント&トラバ

トラックバックを送る

無関係なスパムのトラックバックを防止するため、リンク先で本サイト(suin.asia)への言及が確認されないトラックバックは破棄しています。

トラバURL : http://suin.asia/trackback/131

コメントを書く

お名前* URL
本文*
合い言葉* ←「feerwayck」と入力して下さい。
* この記事の話題と関係ないコメントはどんな内容でも削除します。(移動できないので)

トラックバック

__FILE__ http://www15.atpages.jp/~classicalstudio/wordpress/?p=50 (2009.12.22) #
http://suin.asia/2009/02/18/getcwddirname-file.html ↑__FILE__の結果うんぬん。 getcwd()とdirname(__FILE__)は違う結果になるときがある phpでの話です。 getcwd()とdirname(__FILE__)はカレントディレクトリのパスを...

コメント

コメントはないです。誰かコメント書いてよぅ…。

Author

Submenu

Recent Entries

XOOPS Cube Dev Ring

氷川 XOOPS Module 開発室

Recent Comments

Recent Trackbacks

facebookいいね