作業ノート

様々なまとめ、雑感など

phpの__FILE__のパス

シンボリックリンクphpを実行したときにうまく動かずはまったので。
シンボリックリンクphpファイルで__FILE__は、シンボリック元のファイルパス。

php

$ php -v
PHP 5.3.13 with Suhosin-Patch (cli) (built: Jun 20 2012 17:05:20) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

検証

サンプルプログラム

$ cd ~/scratch/php/
$ mkdir foo bar
$ vi foo/test.php

<?php                                                                                                                                                                                               
echo __FILE__."\n";
echo dirname(__FILE__)."\n"; 
echo realpath(dirname(__FILE__))."\n"; 

シンボリックリンク作成

$ cd bar/
$ ln -s ../foo/test.php
$ cd ..

確認

$ php foo/test.php
/Users/te2u/scratch/php/foo/test.php
/Users/te2u/scratch/php/foo
/Users/te2u/scratch/php/foo

$ php bar/test.php
/Users/te2u/scratch/php/foo/test.php
/Users/te2u/scratch/php/foo
/Users/te2u/scratch/php/foo