[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перебор названии папок и их создание
Hahol404
День добрый, вот я опять к вам за советом. rolleyes.gif
Мне нужен цикл, который будет перебирать название папок в конкретной директиве и в случае отсутствия папки создавать его.
Перебор идёт от 000 до 999
допустим папки с именем 000 не оказалось, тогда несуществующая папка создаётся с именем 000 и цикл завершается. тож самое если допустим 000 есть, а 001 нет, папка с именем 001 создаётся, цикл завершается. Как это всё организовать в коде? blink.gif




Спустя 10 минут, 44 секунды (12.02.2012 - 14:35) johniek_comp написал(а):
Hahol404
как сам пробовал?

Спустя 13 секунд (12.02.2012 - 14:35) inpost написал(а):
Массив имён, массив существующих папок.
После перебор имён и сравнение с массивом папок функцией in_array();

Спустя 1 час, 52 минуты, 47 секунд (12.02.2012 - 16:28) Hahol404 написал(а):
Разобрался, но теперь с прикручиванием проблемы
чо не так то ?


<?php
$b = "4";
$uploaddir = './server/'$b'/';
?>


а вответ

Parse error: syntax error, unexpected T_VARIABLE

Спустя 2 минуты, 4 секунды (12.02.2012 - 16:30) dadli написал(а):
$b = "4";
$uploaddir = './server/'.$b.'/';

Спустя 1 час, 20 минут, 29 секунд (12.02.2012 - 17:50) ИНСИ написал(а):
Hahol404 не ломай себе голову с готовыми названиями папок. Это делается куда проще:

$path = 'folders/'; // Категория, в которой необходимо проверить наличие папок

// Цикл

for($x = 0; $x <= 999; $x++) {
// Конечный путь к папке
$nameFolder = $path . str_pad($x, 3, '0', STR_PAD_LEFT);

// Проверим наличие папки
if(!is_dir($nameFolder))
mkdir($nameFolder, 0777); // Создаем папку
}

Спустя 16 минут, 58 секунд (12.02.2012 - 18:07) Hahol404 написал(а):
Большое спасибо, но я уже написал, и кста как раз через mkdir)))

<?php

$a = range(100, 99999);

foreach($a as $b){
$directory = "./server/$b";
if(@mkdir($directory)) {
break;
}
else
{
}
}

echo "№ $b";
?>


Но всёрвно т.к. вы единственный кто написал код, с мя +1))

Спустя 1 минута, 19 секунд (12.02.2012 - 18:09) Hahol404 написал(а):
Хотя концовка удачней, чем глушить @


// Проверим наличие папки
if(!is_dir($nameFolder))
mkdir($nameFolder, 0777); // Создаем папку

Спустя 13 минут, 19 секунд (12.02.2012 - 18:22) ИНСИ написал(а):
Hahol404 твой код будет работать неверно твоему заданию. По этому ты создал массив со 100 )))

Спустя 2 часа, 48 минут, 49 секунд (12.02.2012 - 21:11) walerus написал(а):
<?php
set_time_limit(0);
error_reporting(E_ALL);

define('ROOT', dirname(__FILE__).'/');

function get_directory_list($path)
{
$result = array();

if (substr($path, -1) != "/")
$path = $path."/";

if(is_dir($path))
{
$dh = opendir($path);
while (false !== ($dir = readdir($dh)))
{
if (is_dir($path . $dir) && $dir !== '.' && $dir !== '..')
$result[] = $dir;
}
closedir($dh);
}
else
{
print "Директория <b>".$path."</b> не найдена";
}
return $result;
}

$patch = 'test'; // Папка в которой будут создаваться новые папки
$folders_all = get_directory_list( ROOT . $patch );

// Если пустая папка - создаем первую
if ( empty( $folders_all ) )
{
mkdir( $patch . '/000', 0777 );
chmod( $patch . '/000', 0777 );
}
else
{
sort($folders_all);
$max = max($folders_all);
$max++;
$max = str_pad( $max, 3, '0', STR_PAD_LEFT );

mkdir( $patch . '/'. $max, 0777 );
chmod( $patch . '/'. $max, 0777 );
}

// Перечитали каталог
$folders_all = get_directory_list( ROOT . $patch );

print_r($folders_all);


Вот со всеми плюшками :rolleyes:

Спустя 3 минуты, 54 секунды (12.02.2012 - 21:15) inpost написал(а):
$array = array('000','001','002'...)
$dirs = readdir('/');
$new_dirs = array_unique(!).
foreach($new_dirs as $v)
mkdir($v);

Надеюсь суть понятна :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.