П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180396 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 78728 раз(а).

Учебник HTML.
Просмотров 75685 раз(а).

Руководство по PHP5.
Просмотров 46699 раз(а).

Хостинг через призму DNS.
Просмотров 54162 раз(а).

Подборка текстов стандартных документов.
Просмотров 46609 раз(а).

Учебник PHP - Самоучитель
Просмотров 52795 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53400 раз(а).

Внешние атаки...
Просмотров 43179 раз(а).

Учебник PHP.
Просмотров 38723 раз(а).

SSI в примерах.
Просмотров 28642 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь



http://vse-ressory.ru/ купить рессоры на лт 35. Подвеска на volkswagen купить.


Работа с файлами

Работа с каталогами



Для установки текущего каталога применяется функция chdir:

  int chdir ( string directory)

Работать с этой функцией можно следующим образом:

  • chdir("/tmp/data"); // переход по абсолютному пути
  • chdir("./js"); // переход в подкаталог текущего каталога
  • chdir(".."); // переход в родительский каталог
  • chdir("~/data"); // переходим в /home/пользователь/data (для Unix)

Чтобы узнать текущий каталог можно воспользоваться функцией getcwd:

  string getcwd ( string path)

Для того чтобы открыть каталог используется функция opendir, открывающая каталог, заданный параметром path:

  int opendir ( string path)

После того, как каталог открыт, прочитать его можно функцией readdir:

  string readdir ( int dir)

Эта функция возвращает имена элементов, содержащихся в каталоге. Кроме файлов и папок в каталогах находятся также элементы "." и "..". Первый элемент указывает на текущий каталог, а второй - на родительский. Текущий каталог, кстати, можно открыть, указав его имя как ".":

   $dir = opendir (".");

После того, как работа с каталогом закончена, его нужно закрыть. Закрытие каталога выполняется при помощи функции closedir:

  void closedir ($dir)

Ниже приведен пример, осуществляющий чтение и вывод файлов, находящихся в текущем каталоге.

<?
  $dir = opendir (".");
  echo "Files:\n";
  while ($file = readdir ($dir)) 
  {
    echo "$file<br>";
  }
  closedir ($dir);
?>

Заметим, что эта функция возвращает также "." и "..". Если этого делать не нужно, то исключить эти значения можно следующим образом:

<?
  $dir = opendir (".");
  while ( $file = readdir ($dir))
  {
    if (( $file != ".") && ($file != ".."))
    {
      echo "$file<br>";
    }
  }
  closedir ($dir);
?>

В качестве примера на рассмотренные функции, давайте создадим скрипт, удаляющий все файлы из каталога c:/temp, к которым не было доступа в течение суток. Функция удаления файлов в этом случае вызывается рекурсивно.

<?
  function delTemporaryFiles ($directory)
  {
  $dir = opendir ($directory);
  while (( $file = readdir ($dir)))
  {
    if( is_file ($directory."/".$file))
    {
      $acc_time = fileatime ($directory."/".$file);
      $time =  time();
      if (($time - $acc_time) > 24*60*60)
      {
        if (  unlink ($directory."/".$file))
        {
          echo ("Файлы успешно удалены");
        }
      }
    }
    else if ( is_dir ($directory."/".$file) && ($file != ".") && ($file != ".."))
    {
      delTemporaryFiles ($directory."/".$file);
    }
  }
  closedir ($dir);
  }
  delTemporaryFiles ("c:/temp");
?>

Создание каталогов производится с помощью функции mkdir:

  bool mkdir ( string dirname, int mode)

Эта функция создает каталог с именем dirname и правами доступа mode. В случае неудачи возвращает false. Права доступа задаются только для каталогов UNIX, поскольку в Windows этот аргумент игнорируется. Ниже приведен пример создания каталога test в директории c:/temp.

<?
  $flag = mkdir ("c:/temp/test", 0700);
  if($flag)
  {
    echo("Каталог успешно создан");
  }
  else
  {
    echo("Ошибка создания каталога");
  }
?>

Удалить каталог можно с помощью функции rmdir:

  bool rmdir ( string dirname)

Теперь удалим только что созданный каталог /test:

<?
  $flag = rmdir ("c:/temp/test");
  if($flag)
  {
    echo("Каталог успешно удален");
  }
  else
  {
    echo("Ошибка удаления каталога");
  }
?>

Функция rmdir удаляет только пустые каталоги. Для того чтобы удалять непустые каталоги, давайте напишем функцию и удалим каталог c:/temp со всеми вложенными папками и файлами:

<?
  function full_del_dir ($directory)
  {
  $dir = opendir($directory);
  while(($file = readdir($dir)))
  {
    if ( is_file ($directory."/".$file))
    {
      unlink ($directory."/".$file);
    }
    else if ( is_dir ($directory."/".$file) &&
             ($file != ".") && ($file != ".."))
    {
      full_del_dir ($directory."/".$file);  
    }
  }
  closedir ($dir);
  rmdir ($directory);
  echo("Каталог успешно удален");
  }
  full_del_dir ("c:/temp")
?>

При рекурсивном вызове функции не передавайте в качестве аргументов записи "." и "..", указывающие на текущий и родительский каталоги, так как в этом случае вы можете потерять ваши данные. Пропускайте эти записи явным образом при помощи условного оператора.

Назад | Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru