Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с несколькими каталогами
 
 автор: White_Owl   (16.03.2008 в 01:34)   письмо автору
 
 

Столкнулся с проблемой, на которую не могу нигде найти ответа, всё облазил не могу уже , последняя надежда мой люимый форум :)

В кратце о скрипте, поиск в файлах, которые содержатся в папках папки Docs

вот код , начну с самого начала т.к. нв мой взгляд это важно


$dir = opendir("Docs");
chdir("Docs");
while ($d=readdir($dir)){
    if (is_dir($d)){
        $directories[] = $d;
    }
}
closedir($dir);.
//теперь проверка на отправку формы и получение списка всех файлов из выбранной директории
//$folder имя папки которую пользователь выбирает в select 
if (isset($_GET['submit'])){
$textserch = trim($_GET['text_serch']);
$folder = $_GET['select'];
$serch_dir = opendir("Docs/$folder");
chdir("Docs/$folder");
while ($serch_file = readdir($serch_dir)){
        if (is_file($serch_file)){
            $files[] = $serch_file;
        }
    }
closedir($serch_dir);
}

Перепробовал всё что только можно, закрались подозрения что нельзя работать в одном скрипте с несколькими каталогами одновременно, потому что после того как я комментирую вот этот код всё замечательно работает.

$dir = opendir("Docs");
chdir("Docs");
while ($d=readdir($dir)){
    if (is_dir($d)){
        $directories[] = $d;
    }
}
closedir($dir);

Но я не думаю что пхп разработчики не предусмотрели такого варианта.

   
 
 автор: Drago   (16.03.2008 в 02:10)   письмо автору
 
   для: White_Owl   (16.03.2008 в 01:34)
 

Может быть, дело в "chdir("Docs");"?
Этой командой вы устанавливаете текущий каталог как "Docs". И следующий вызов этой функции выполняется относительно него.
То есть, функции "opendir("Docs/$folder");" и "chdir("Docs/$folder");", пытаются найти каталог "Docs/Docs/$folder", которого, естественно не существует.

   
 
 автор: White_Owl   (16.03.2008 в 12:52)   письмо автору
 
   для: Drago   (16.03.2008 в 02:10)
 

всё решилось очень просто :)


$serch_dir = opendir("$folder/");
chdir("$folder/");
while ($serch_file = readdir($serch_dir)){
        if (is_file($serch_file)){
            $files[] = $serch_file;
        }
    }
closedir($serch_dir);

то есть просто заменил на


$serch_dir = opendir("$folder/");
chdir("$folder/");

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования