2017-04-15 1 views
0

ich den folgenden PHP-Code verwenden:wie, ob mehrere Ordner zu überprüfen, vorhanden ist oder nicht, wie Wordpress Stil

if (!file_exists('../products')) 
    { 
     mkdir('../products', 0777, true); 
     $target = "Main Not Present, "; 
    } 
else 
    { 
     if(file_exists('../products')) 
      { 
       $timezone = new DateTimeZone("Asia/Kolkata"); 
       $datetime = new DateTime(); 
       $datetime->setTimezone($timezone); 

       $year = $datetime->format('Y'); 
       $month = $datetime->format('M'); 
       $day = $datetime->format('D'); 
       $timestamp = $datetime->format('Y-m-d H:i:s'); 

       if(!file_exists('../products/'.$year)) 
        { 
         mkdir('../products/'.$year, 0777, true); 
         $target = $target."With year not present also, "; 
        } 
       else 
        { 
         if(file_exists('../products/'.$year)) 
          { 
           if(!file_exists('../products/'.$year."/".$month)) 
            { 
             $target = $target."With not not present also"; 
            } 
          } 
        } 
      } 
    } 

ich eine E-Commerce-Website mit CMS-Technik wie Wordpress erschaffe, aber versuche ich, ob bestimmten prüfen Verzeichnisse existieren oder nicht, wenn sie nicht dann sie erstellen und fortfahren. Das Problem mit meinem Code ist, dass, wenn dieser Code wahr angetroffen wird

if (!file_exists('../products')) 
{ 
    mkdir('../products', 0777, true); 
    $target = "Main Not Present, "; 
} 

es das Verzeichnis erstellt und die Daten werden in den Variablen gespeichert, das Problem ist, dass es nicht weiter verarbeitet und geht in der else-Anweisung, ob die anderen Ordner in diesem products Ordner existieren oder nicht.

Was ich versuche zu erreichen, dass

1.) die Produkte Ordner überprüfen, ob es dann nicht existiert erstellen, wenn es dann weiter geht vorhanden ist, läßt schlimmen Fall nehmen, dass es nicht vorhanden ist, dann In diesem Fall, wenn ich diesen Ordner erstellen möchte und meinen Code weiterarbeitet, aber mit diesem Code erfüllt er nur die 1st if-Bedingung und geht nicht in die else-Anweisung, um den Code weiter zu erfüllen.

Kann mir jemand dabei helfen? Danke im Voraus.

Antwort

0

Der oben angegebene Code war zu fehlerhaft und groß, ich habe es mit der rekursiven Methode erreicht.

//recursive function created here 
function check_create($path) 
    { 
    if (is_dir($path)) return true; 
    $prev_path = substr($path, 0, strrpos($path, '/', -2) + 1); 
    $return = check_create($prev_path); 
    return ($return && is_writable($prev_path)) ? mkdir($path) : false; 
    } 

//call the recursive function to check and create if not exists 
check_create("path/to/directory"); 
Verwandte Themen