2013-01-04 184 views
1

我是codeigniter(和一般的php)的新手,我正在学习它的教程。 以下网址:http://ellislab.com/codeigniter/user-guide/tutorial/static_pages.htmlCodeigniter相对路径文件

控制器会检查文件是否存在使用

if (! file_exists('application/views/pages/'.$page.'.php')) 

我的问题是:这个脚本是从应用/控制器/ pages.php运行,所以不在路径给予file_exists相对于当前脚本?那就是它应该指向application/controllers/application/views/pages /'.$页面。'。php'。

但事实并非如此,事实上路径检查文件相对于路径根! 那么这个php的问题或codeigniter?

谢谢。

回答

4

所有路径都是相对于条目脚本(可能index.php或任何Codeigniter使用的)。

要获取相对于当前脚本的路径,请使用__FILE__常量。

file_exists(dirname(__FILE__) . "/path/to/file.php"); 
+2

或者立即使用'__DIR__'常量。 – hakre

+1

通常,'index.php'与'application'位于同一个文件夹中,这就是为什么'file_exists('application/views/pages /'。page'。php')'起作用的原因。因为它可能比较棘手,所以我通常更喜欢使用'file_exists(__ DIR__。'path/relative/to/current/php/file'')给它一个绝对路径 –

+1

如果给定路径是目录路径,file_exists返回true。最好使用is_file()函数。 –