ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Листинг директорий : как приписыать скрипту постоянно меняющийся путь к файлу? и т.д.
  #1  
Старый 07.12.2008, 14:30
Аватар для UnPazz
UnPazz
Участник форума
Регистрация: 30.08.2008
Сообщений: 128
Провел на форуме:
668329

Репутация: 106
По умолчанию Листинг директорий : как приписыать скрипту постоянно меняющийся путь к файлу? и т.д.

Листинг директорий : ищет файлы и папки в определенной папке.
Не получается сделать, чтобы открывал найденные папки и искал в них файлы.
PHP код:
<?php

  $mas_dir
[0] = '/';  // папка в которой искать.
  
$i=0;   //счетчики равны нулю : кол-во найденных папок.
  
$td=0//временная переменная для найденных папок.
  
$tf=0;  //счетчики равны нулю : кол-во найденных файлов.


  
while (true == isset($mas_dir) )     //пока есть папки в папках, ищем.
  
{

     
//в директории
    
$mas_dir[$i] = opendir(''.$mas_dir[$i].''); // здесь указывается путь к вновь найденной папке.

    
$td=$i//временная переменная

     
while (true == ($file readdir($mas_dir[$i])))
              {
               if (
$file != "." && $file != "..")
               if (
is_dir($file) == true )  {   $td=$td+1;  $mas_dir[$td]=$file; };
               if (
is_file($file) == true )  { $mas_file[$tf]=$file$tf=$tf+1;  };
              };
      
closedir($mas_dir[$i]);

     
$i=$td//временная переменная

       //вывод на экран
    
for ($is=0$is<count($mas_dir); $is++)  echo "Dir $is $mas_dir[$is] <br>";
    for (
$is=0$is<count($mas_file) ; $is++)  echo "File $is $mas_file[$is] <br>";

     
//если ещё есть папки, то
    
if (true == isset($mas_dir[$i+1] ) )
      { 
array_shift($mas_dir);  //удаляем первый элемент массива
         
$i=$i-1;                     //уменьшаем указатель на единицу
      
}
       else break; 
если нетто заканчиваем работу.

  }

?>
Если в папке найдены папки, то скрипт продолжает работу, копирую названия найденных папок в массив $mas_dir[] . Как только скрипт переберет все папкипройдет по всм папкам он закончит работу. Все найденные файлы, перемещаются в массив $mas_file[].

При нахождении новых папок, нужна указывать путь к папке (в выделенной строке. Но функция getcwd определяет путь, в котором работает скрипт.

Как определять путь к найденной папке, чтобы открыть её? И как прописывать постоянно меняющийся путь к вновь найденным папкам в папках (см. выделенную строку)?

Последний раз редактировалось UnPazz; 07.12.2008 в 14:35..
 
Ответить с цитированием

  #2  
Старый 07.12.2008, 21:01
Аватар для [dei]
[dei]
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме:
1123418

Репутация: 362
Отправить сообщение для [dei] с помощью ICQ
По умолчанию

PHP код:
<?php 
function ls($dir,$level=0) {
    if(!
$levelchdir($dir);
    
$dir=opendir('.');
    while (
$d readdir($dir)) {
        if(
$d=='.' || $d=='..') continue;
        if(
is_dir($d)) { 
            echo 
str_repeat("\t",$level).$d."\n";
            
chdir($d);
            
ls($d,$level+1);
            
chdir('..');
        }
        else if(
is_file($d))
        {    
            echo 
str_repeat("\t",$level).$d."\n";
        }
    }
}

echo 
'<pre>';
ls('.');
echo 
'</pre>';
?>
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ