2011-03-08 13 views
5

हाय मुझे हाल ही में इस समस्या का सामना करना पड़ा लेकिन इसे ठीक करने में सक्षम था। वास्तव में पथ में गलती वर्तनी। मैं जानना चाहता हूं कि इन त्रुटियों को सही तरीके से कैसे संभालना है। यानी मेरा प्रोग्राम निष्पादन जारी रखना चाहिए और mkdir विफल होने पर सुरक्षित रूप से झूठी वापसी करनी चाहिए। यह मेरा कोडचेतावनी (2): mkdir() [function.mkdir]: ऐसी कोई फ़ाइल या निर्देशिका

try 
{ 
    foreach($folders as $folder) 
    { 
     $path = $path.'/'.$folder;  
     if(!file_exists($path)) 
     { 
      if(!(mkdir($path))) 
      { 
       return false; 
      } 
     } 
    } 
    return true; 
} 
catch (Exception $e){ 
    return false; 
} 

मैं चाहता हूं कि mkdir इसे बनाने में सक्षम न हो। इसे झूठा लौटा देना चाहिए और निष्पादन जारी रखना चाहिए

EDIT: यहां समुदाय प्रतिक्रिया पर आधारित कोड अपडेट किया गया है। लेकिन अभी भी मेरे प्रश्न

if(!file_exists($newfolder)) 
{ 
    if(mkdir($newfolder,0755,true)) 
    { 
       return true; 
    } 
} 
+3

कोशिश-पकड़ के साथ क्या है? यहां कुछ भी संभवतः एक अपवाद फेंक सकता है। – BoltClock

+0

या फिर मुझे एहसास हुआ कि बाद में – aWebDeveloper

उत्तर

5

क्या आप setting the recursive flag to true खोज रहे हैं?

<?php 
// Desired folder structure 
$structure = './depth1/depth2/depth3/'; 

// To create the nested structure, the $recursive parameter 
// to mkdir() must be specified. 

if (!mkdir($structure, 0, true)) { 
    die('Failed to create folders...'); 
} 

// ... 
?> 
+0

मैंने इसे संपादित किया। मेरे पास कोई प्रस्ताव नहीं है अगर mkdir falis लेकिन निष्पादन जारी रखना चाहिए इसे झूठी वापसी करना है - – aWebDeveloper

1

फ़ंक्शन रिकर्सिव नहीं होता है। आपको अपनी निर्देशिका में पूरी निर्देशिका पेड़ बनाना होगा, जिसे आप बनाना चाहते हैं। here पढ़ें। सरनोल्ड की तरह कहा, बस रिकर्सिव तर्क को सही पर सेट करें।

+0

मैंने इसे संपादित किया है। एमकेडीआईआर फालिस पर मेरा कोई प्रस्ताव नहीं है लेकिन निष्पादन जारी रखना चाहिए, इसे झूठी वापसी करनी है – aWebDeveloper

संबंधित मुद्दे