データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

require,includeの絶対パスでのファイル読み込み

PHPでファイルを読み込むときの関数がrequire,includeです。
今まではフレームワークを使っていたのでそんなに意識していなかったのですが、
最近PHPをベタ書きすることがあり、
ハマったことがあったので書いておきます。

PHPでは読み込み元のファイルがカレントディレクトリとして
読み込むファイルのディレクトリも設定されてしまうので
相対パスでrequire,includeを使ってファイルを読み込んでいると
エラーが発生する恐れがあります。

これを解消するのがdirname(__FILE__)で、ファイルの絶対パスが取得できます。
使い方はこんな感じ...

require('../application/get_event.php');
--> require(dirname(__FILE__) . '/../application/get_event.php');

注意点としてはdirname(__FILE__)では最後のスラッシュがとれていないので
文字列でパスを指定する初めにスラッシュが必要になる点です。