Эта тема на forum.dklab.ru


Alexei_M: Создание директорий
Всем привет!

У меня такая проблема:
есть два массива, в которых указазны названия папок, создаваемых в корневом каталоге; каждый следующий элемент массива - вложенная папка в предыдущий.

Пример:
$arr1 = array('aaa');
$arr1 = array('aaa','aaa','aaa');

если выполнить следующий код, применимо сначала к $arr1, а потом к $arr2, то вылезает Warning: chdir() : No such file or directory (errno 2). Для массивов, типа ('aaa') и ('aaa','bbb','aaa') все нормально.

foreach ($arr as $a){
if( !file_exists($a))
mkdir($a, 0770);
chdir($a);
}

В чем у меня ошибка и как ее возможно решить???
Почему file_exists работает таким образом???

Заранее спасибо!
Дмитрий Котеров:
Как будто бы код правильный...
Отлаживать надо.
Приведите полный код скрипта, который не работает, чтобы его можно было просто скопировать к себе и запустить, не выполняя других телодвижений.
Maus:
Alexei_M
Пользуйтесь, пожалуйста, списком "вставить код" (под полем ответа)
len-kuz:
вероятно папки не создаются.
попробуйте права на папки при создании 777 сделать, если заработает, то связывайтесь с суппортом хостера.
Alexei_M:
код отлаживается на localhost!

Данная конструкция работает!!!

foreach ($arr as $a){
@mkdir($a, 0770);
chdir($a);
}


все же кажется, что file_exests() работает не корректно!

У кого будут какие мысли??? :))))
Alexei_M:
Alexei_M
!!! Вот такой код не работает !!!

$a1 = array('aaa','aaa');
$a2 = array('aaa','aaa','aaa','aaa');

function aaa($arr)
{
chdir( getenv("DOCUMENT_ROOT") );
foreach ($arr as $a) {
if (!file_exists($a))
mkdir($a, 0770);
chdir($a);
}
}

aaa($a1);
aaa($a2);

Alexei_M:
Alexei_M
Отвечу сам на свой вопрос:)))

$a1 = array('aaa','aaa');
$a2 = array('aaa','aaa','aaa','aaa');

function aaa($arr)
{
chdir( getenv("DOCUMENT_ROOT") );
foreach ($arr as $a) {
if (!file_exists($a) || !is_dir($a.'/'))
mkdir($a, 0770);
chdir($a);
}
}

aaa($a1);
aaa($a2);

так все работает!!!

Эта тема на forum.dklab.ru