[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с командой CHDIR()
Albert
Помогите пожалуйста, как исключить ошибки используя эту функцию...

вот у меня такая проблема... на странице используются ТРИ раза функция с определением количества файлов в РАЗНЫХ директориях, везде я использую функцию типа

$dir = opendir( "./data/" );
chdir( "./data/" );

while( $d = readdir( $dir ) ) {
if( is_file( $d ) ) {

$num++
}
}
closedir( $dir);


НО дело вообще не подсчете, дело в команде chdir, после того как один раз она засветица в коде, далее, где у меня стоит ВТОРАЯ функции подсчета, там выдается такая фигня

Warning: opendir(./data/) [function.opendir]: failed to open dir: No such file or directory in /home/xxx/public_html/test.php on line 126

но стоит мне добавить эти строчки

chdir("..");
chdir("..");

сразу же после closedir( $dir);, проблема эта пропадает, но появляется уже на следующем участке, когда идет ТРЕТЬЯ функция подсчета...

помогите пожалуйста,





Спустя 32 минуты, 36 секунд (9.01.2009 - 20:20) kirik написал(а):
А какой вообще смысл в вызове chdir( "./data/" ); ??

Спустя 13 минут, 19 секунд (9.01.2009 - 20:33) Albert написал(а):
чтобы в каталог data перейти, иначе количество файлов не подсчитывается без chdir...



Спустя 15 минут, 3 секунды (9.01.2009 - 20:48) Albert написал(а):
проблема решена, просто нужно проверять функцией getcwd(); в каком каталоге сейчас находитесь, прежде чем opendir делать....

Спустя 24 секунды (9.01.2009 - 20:49) kirik написал(а):
Цитата (Albert @ 9.01.2009 - 12:33)
чтобы в каталог data перейти, иначе количество файлов не подсчитывается без chdir...

По-моему здесь вы не правы.. opendir( "./data/" ); - этим самым вы уже перешли в каталог data.
А для подсчета файлов в папке достаточно -
PHP
$dir './data/';
$num 0;
$dir opendir($dir);
while((
$file readdir($dir)) !== false)
{
    if(
is_file($file) && $file != '.' && $file != '..')
        
$num++;

closedir($dir);

Но лучше конечно прописывать полный серверный путь до папки, в которой производится подсчет файлов.

Спустя 27 минут, 40 секунд (9.01.2009 - 21:17) Guest написал(а):

Цитата

По-моему здесь вы не правы.. opendir( "./data/" ); - этим самым вы уже перешли в каталог data.


я пробовал одной командой opendir( "./data/" ); обойтись, но так он не подсчитывал, а если ниже еще chdir("./data/") вводить тогда нормально..

низнаю почему так, но главное что проблема решена уже.

Спустя 25 минут, 50 секунд (9.01.2009 - 21:42) kirik написал(а):
Цитата (Guest @ 9.01.2009 - 13:17)
низнаю почему так, но главное что проблема решена уже.

Лучше всего когда знаешь в чем проблема, и ищешь пути к ее решению =)

Спустя 1 год, 4 месяца, 22 дня, 1 час, 44 минуты, 53 секунды (31.05.2010 - 22:27) Guest написал(а):
Цитата
Лучше всего когда знаешь в чем проблема, и ищешь пути к ее решению =)

Ты если такой умный возьми и напиши почему так происходит.

:-((
Быстрый ответ:

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