2010-08-28 99 views
3

我的当前目录结构如下:PHP - 为什么当dir不存在时,is_dir返回TRUE?

C:\xampp\htdocs\PHP_Upload_Image_MKDIR 

换句话说,下面的目录不存在的。

C:\xampp\htdocs\PHP_Upload_Image_MKDIR\uploaded 
C:\xampp\htdocs\PHP_Upload_Image_MKDIR\uploaded\s002 

问题是,当我运行以下脚本时,函数is_dir始终返回TRUE。

基于手册,http://us2.php.net/manual/en/function.is-dir.php is_dir:如果文件名存在且为目录,则返回TRUE,否则返回FALSE。

我想念这里的东西吗?

谢谢

$userID = 's002'; 
$uploadFolder = '/PHP_Upload_Image_MKDIR/uploaded/'; 
$userDir = $uploadFolder . $userID; 
echo '<br/>$userDir: ' . $userDir . '<br/>'; 

if (is_dir ($userDir)) 
{ 
    echo "dir exists"; // always hit here!!! 
} 
else 
{ 
    echo "dir doesn't exist"; 
} 

mkdir($userDir, 0700); 
C:\xampp\htdocs\PHP_Upload_Image_MKDIR>dir /ah 
Volume in drive C is System 
Volume Serial Number is 30B8-2BB2 

Directory of C:\xampp\htdocs\PHP_Upload_Image_MKDIR 

File Not Found 

C:\xampp\htdocs\PHP_Upload_Image_MKDIR> 


////////////////////////////////////////////////////////// 

基于Artefacto的评论:

Here is the output of C:\PHP_Upload_Image_MKDIR\uploaded\s005 
echo '<br/>' . realpath($userDir) . '<br/>'; 

谢谢你的解决方案。

最良好的祝愿

+1

您是否肯定这些目录不存在(例如:它们可能被隐藏) – NullUserException 2010-08-28 16:05:26

+1

ya,请确保该目录不存在...代码可以正常工作 – Aziz 2010-08-28 16:08:00

+1

查看“realpath( $ userDir)' – Artefacto 2010-08-28 16:10:26

回答

1

而且,它好像你正在检查的目录是PHP_Uploaded_Image_MKDIR/uploaded/s002,这是从根文件系统开始的绝对路径。

尝试在此前加上C:\xampp\htdocs\,看看它是否有效。另外,请检查文件夹是否存在于卷的根目录下。

1

如果你运行该脚本超过一次,那么is_dir($userDir)将返回true因为该行(最后一个)在你的脚本:

mkdir($userDir, 0700); 

您可以使用rmdir()或一些其他的方法来删除它。

要测试is_dir(),请尝试从未使用/创建的目录名称。像下面这样的东西应该返回false,当它,你知道is_dir()作品:

if (is_dir ("/PHP_Upload_Image_MKDIR/uploaded/lkjlkjlkjkl")) 
相关问题