PHPのデバッグについて。ディレクトリ編

Pocket

思わぬところでハマりました。phpでfopenやtouchする場合のディレクトリ、最初に呼び出されたファイルの場所がカレントディレクトリとなるようです。

以下の構成で

root/hoge/a.php

root/hoge/piyo/b.php

a.phpの内容

<?php
include_once “./piyo/b.php”;
?>

b.phpの内容

<?php
touch(“c.php”);
touch(dirname(__FILE__) .”/d.php”);
?>

この場合、

root/hoge/a.php

root/hoge/c.php

root/hoge/piyo/b.php

root/hoge/piyo/d.php

というようにファイルが生成されます(touchは更新時間を変更する関数ですが、ファイルが存在しない場合、ファイルを作成します)。

ディレクトリを指定する場合は、そのファイルの場所を示すdirname(__FILE__) を毎回付けたほうがいいかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。