Мне нужен цикл, который будет перебирать название папок в конкретной директиве и в случае отсутствия папки создавать его.
Перебор идёт от 000 до 999
допустим папки с именем 000 не оказалось, тогда несуществующая папка создаётся с именем 000 и цикл завершается. тож самое если допустим 000 есть, а 001 нет, папка с именем 001 создаётся, цикл завершается. Как это всё организовать в коде?
Спустя 10 минут, 44 секунды (12.02.2012 - 14:35) johniek_comp написал(а):
Hahol404
как сам пробовал?
как сам пробовал?
Спустя 13 секунд (12.02.2012 - 14:35) inpost написал(а):
Массив имён, массив существующих папок.
После перебор имён и сравнение с массивом папок функцией in_array();
После перебор имён и сравнение с массивом папок функцией in_array();
Спустя 1 час, 52 минуты, 47 секунд (12.02.2012 - 16:28) Hahol404 написал(а):
Разобрался, но теперь с прикручиванием проблемы
чо не так то ?
а вответ
Parse error: syntax error, unexpected T_VARIABLE
чо не так то ?
<?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)))
Но всёрвно т.к. вы единственный кто написал код, с мя +1))
<?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);
Надеюсь суть понятна :)