2014-02-10 2 views
0

У меня есть структура массива, как показано ниже. Я хочу создать папку в папке с помощью этого массива. Как мне это сделать?Создание dir с использованием массива в PHP

$folder=array(4) { 
    [0]=> 
    string(3) "img" 
    [1]=> 
    string(7) "dummies" 
    [2]=> 
    string(6) "slides" 
    [3]=> 
    string(6) "01.jpg" 
} 

Я попытался, как это, но это не решает мою проблему ..

$imglength=count($folder); 
$i=0; 
$fold=$i<($imglength-1); 
while(!file_exists($fold)) 
{ 
    mkdir($fold); 
} 
+0

'$ складку = $ я <($ imglength-1);' Что это? Вы знаете, что эта переменная будет содержать только «истину» или «ложь», правильно? –

+0

file_exists ($ path_from_root. '/ Somedir/file /'. $ Fold) проверить из выпадающей папки корневого каталога или нет – Dev

+0

как насчет 'array_map ('mkdir', $ array)'? (если файл/dir существует, он потерпит неудачу, но продолжит) –

ответ

0

Ну, это один из способов сделать это. Вероятно, это не самый эффективный способ сделать это, но он работает.

<?php 
    $folders = Array(
     Array("img", "dummies", "slides", "01.jpg"), 
     Array("img_24", "dummy", "slideshows", "65.png") 
    ); 

    for ($i=0;$i<count($folders);$i++) { 
     for ($j=0;$j<count($folders[$i]);$j++) { 
      $path .= $folders[$i][$j] . "/"; 
      mkdir($path); 
     } 
     unset($path); 
    } 
?> 

Это в основном читает массив и помещает каждое имя в одной переменной, которая простирается на себя так, что он создает путь. Файл JPEG не создается, конечно, но это то, что вы можете сделать с file_put_contents или так, просто приведите ему другое значение массива, ссылаясь как «файл» вместо определения «папка по умолчанию». Затем, когда он читает определение, он автоматически создает файл вместо папки, а затем записывает данные битмапа.

EDIT: Для создания файла вы можете использовать file_put_contents, как я объяснил выше, я сделал небольшой фрагмент кода, чтобы продемонстрировать его использование.

<?php 
    $folders = Array(
     Array("img", "dummies", "slides", Array("01.jpg", "11abcdefghijklmnopqrstuvxyz")), 
     Array("img_24", "dummy", "slideshows", Array("65.png", "22abcdefghijklmnopqrstuvxyz")) 
    ); 

    for ($i=0;$i<count($folders);$i++) { 
     for ($j=0;$j<count($folders[$i]);$j++) { 
      $path .= (gettype($folders[$i][$j]) != "array" ? $folders[$i][$j] . "/" : $folders[$i][$j][0]); 
      if (gettype($folders[$i][$j]) != "array") { 
       mkdir($path); 
      }else{ 
       file_put_contents($path, (isset($folders[$i][$j][1]) ? $folders[$i][$j][1] : "nil")); 
      } 
     } 
     unset($path); 
    } 
?> 

Второе значение файла JPEG используется для содержимого файла. Вы можете поместить данные растрового изображения в это, читая файл, который вы используете, а затем помещаете его в качестве значения. Таким образом вы получите изображение, созданное должным образом.

+0

ThanKYou так много !!! Последняя вещь ahh i dn хочу создать эту папку 01.jpg, вместо этого я хочу поместить этот файл изображения в эту папку ... пожалуйста, помогите мне, я тоже ... пожалуйста .. :) –

+0

Добро пожаловать. Отредактировано сообщение :-) – ascx

+0

Спасибо большое!^_^ –

0
<html> 
<body> 

<form method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file"><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

</body> 
</html> 

<?php 

    if ($_FILES["file"]["error"] > 0) 
    { 
     echo "Error: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
     $tmp_name = $_FILES["file"]["tmp_name"]; 
    } 


    $folders = array("img","dummies","slides"); 



foreach($folders as $folder) 
{ 

    $folder_path .= $folder."/"; 


    while(!file_exists($folder_path)) 
    { 

     mkdir($folder_path); 

    } 


} 


move_uploaded_file($tmp_name, "$folder_path/".$_FILES['file']['name']); 
+0

ThanKYou так много !!! последняя вещь ahh i dn хочет создать эту папку 01.jpg, вместо этого я хочу поместить этот файл изображения в эту папку ... пожалуйста, помогите мне, я тоже ... пожалуйста .. :) –

+0

@ user3048483 изображение будет уже загружен через форму? –

+0

@ user3048483 ok обновленный код для вас, надеюсь, это то, что вы искали –

0

Просто попробуйте

<?php 
$folder=array(array("img","dummies","slides","01.jpg")); 


$imglength=count($folder); 
$i=0; 
$fold=$i<($imglength-1); 

for($k=0;$k<$imglength;$k++) 
{ 
    $sub_array_count=count($folder[$k]); 
    $tmp=''; 
    for($j=0;$j<$sub_array_count;$j++) 
    { 
     if($j==0) 
     { 
      mkdir($folder[$k][$j]); 


     }else 
     { 
      echo $folder[$k][($j-1)]; 
      echo "<br>"; 
      echo $tmp.=$folder[$k][($j-1)]."/"; 
      mkdir($tmp.$folder[$k][$j]); 

     } 
    } 

} 

?> 
+0

спасибо за ур драгоценный ты драгоценный труд ... :) –

+0

Рад помочь вам. –

Смежные вопросы