2010-08-28 97 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")) 
相關問題