在Windows系统IIS环境空间上部署一套程序,网站放在了D:/1/xxx/wwwroot目录下,但是报错却提示D:/1/xxx/cache目录没有写入权限,奇了个怪,定位到报错行,看了下代码写的define(PATH,dirname(dirname(__FILE__))./cache/;); 咱们也看不懂,代码改成define(PATH, __DIR__./cache/);网站就正常显示,把代码改成define(PATH, dirname(dirname(__FILE__))./wwwroot/cache/);多一级wwwroot目录网站也正常显示的,于是抱着喜欢的学习的态度研究了下。
在网站目录下新建一个简单的php测试文件代码如下
<?php
$the_dir=dirname(__FILE__);
$the_dir1=dirname(dirname(__FILE__));
echo $the_dir;
echo "<br/>";
echo $the_dir1;
?>
访问出来的结果
D:\1\test\wwwroot
D:\1\test\
得到的答案如下
dirname(__FILE__); 返回_FILE__所在文件的路径部分
dirname(dirname(_FILE));得到的是__FILE__所在文件的上一层目录名(不含最后一个“\”号)
举个例子
当前文件存放目录为D:\1\test\wwwroot\test.php
则_FILE_ 得到的就是完整路径 即 D:\1\test\wwwroot\test.php
dirname(_FILE_)得到路径部分 即 D:\1\test\wwwroot
dirname(dirname(_FILE_)),即D:\1\test