關於mkdir()的一個奇怪的問題。

在我的public function addAction()中包含如下一段程序。

$dir_patient="D:\\tumor\\".$this->view->patientID;//爲了創建新的數據文件夾

$dir_study="D:\\tumor\\".$this->view->patientID."\\".$this->view->studyID;//爲了創建新的數據文件夾

$dir="D:\\tumor\\".$this->view->patientID."\\".$this->view->studyID."\\mrs".$this->view->mrsID;

if (!is_dir($dir_patient))
     mkdir($dir_patient,0700);//如果不經過這一步,下面的一段程序if程序就不能執行,原因不明。
    if (!is_dir($dir_study))
    mkdir($dir_study,0700);//如果不經過這一步,下面的一段程序if程序就不能執行,原因不明。
    if (!$dir_exist)  
    { while (!is_dir($dir))
      {   
    mkdir($dir,0700);
      }
    }

程序可以雲心成功,且能正確的建立的相關的文件夾(D盤中的tumor文件夾已經事先建好)。


但是,如果把

if (!is_dir($dir_patient))
       mkdir($dir_patient,0700);//如果不經過這一步,下面的一段程序if程序就不能執行,原因不明。
     if (!is_dir($dir_study))
      mkdir($dir_study,0700);//如果不經過這一步,下面的一段程序if程序就不能執行,原因不明。
     if (!$dir_exist)   
     { while (!is_dir($dir))
        {   
     mkdir($dir,0700);
        }
     }

改爲:

if (!$dir_exist)   
     { while (!is_dir($dir))
        {   
     mkdir($dir,0700);
        }
     }

從邏輯上看,這兩端程序所實現的效果是一樣的,但是,問題是,第二段程序不能運行成功,且服務器會運行好久好久後,給出一張空的網頁。


總結問題,我猜想:只能一步一步的 mkdir($dir_patient,0700);


爲了驗證猜想,我寫了如下一段程序:

public function createfileAction()
    {
         $dir="D:\\nn\\mm\\zz";
         if (!is_dir($dir))
    mkdir($dir,0700);
    if (!is_dir($dir))
    mkdir($dir,0700);
    if (!is_dir($dir)) 
    mkdir($dir,0700);    
    }

運行結果卻是三個警告:

Warning: mkdir() [function.mkdir]: No such file or directory in D:\php\wamp\www\mvcnew\application\modules\mrs\controllers\IndexController.php on line 607

Warning
: mkdir() [function.mkdir]: No such file or directory in D:\php\wamp\www\mvcnew\application\modules\mrs\controllers\IndexController.php on line 609

Warning
: mkdir() [function.mkdir]: No such file or directory in D:\php\wamp\www\mvcnew\application\modules\mrs\controllers\IndexController.php on line 611


哪位大牛幫忙指點一下,這是爲什麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章