Использование файловой системы

Используя несложные PHP-сценарии, вы можете делать все, что угодно с файловой системой вашего компьютера. В этой главе вы узнаете, как с помощью сценариев РНР выполнять следующие действия:

отображать содержимое папки (каталога);
  • создавать новый файл;
  • открывать существующий файл и добавлять в него данные;
  • копировать, переименовывать и удалять файлы.
  • Замечание о путях к файлу

    Сценарии, которые мы будем создавать в этой главе, могут быть выполнены как под управлением операционной системы Windows так и под управлением Linux/Unix. Указывая путь к файлу в операционной системе Windows, вы можете использовать символы, как прямой (/), так и обратной косой черты (\). В других операционных системах вы должны использовать в путях только прямую косую черту (/). Поэтому все сценарии, которые будут описаны в этой главе, будут использовать в путях к файлам прямую косую черту (/) для обеспечения совместимости со всеми операционными системами. Этот метод работает, даже если вы не укажите букву имени диска, как, например, в пути

    $path = "Program Files/Apache Groupe/Apache/htdocs";

    Такой путь в операционной системе Windows предполагает, что будет использоваться текущий диск (в нашем случае С:/). Если вам нужно указать не текущий диск, то вы должны сделать это явным образом. Например,

    $path = "D:/Program Files/Apache Groupe/Apache/htdocs";

    Вы можете изменять в сценариях пути к файлам в соответствии с вашей собственной структурой каталогов (папок), но ничего другого менять не надо.

    Отображение содержимого папки (каталога)

    Вы можете не поверить, но сценарий, который вы сейчас создадите - самый сложный в этой главе, хотя он состоит всего из 32 строк! Задачей сценария является открыть папку, найти в ней имена всех файлов и отобразить результат в виде маркированного списка.

  • Создайте с помощью текстового редактора новый файл.
  • Чтобы начать PHP-блок, введите текст:
  • Чтобы создать переменную для хранения полного пути к папке, введите текст:
  • В этой строке может быть указана любая существующая на вашем компьютере папка с файлами. Чтобы сценарий работал, замените указанный в этой строке путь на полный путь к интересующей вас папке на вашем компьютере.

  • Создайте "указатель", который открывает указанную в предыдущем шаге папку с помощью функции opendir( ):
  • Термин "указатель" будет использоваться для ссылки на открытую папку в последующих функциях, связанными с папками.

    В конечном счете вы поместите результаты в маркированный список, содержащейся в переменной с именем $file_list.

  • Чтобы начать формирование маркированного списка, введите:
  • Начните оператор цикла while, который использует функцию readdir () для определения начала и конца цикла:
  • Функция readdir () возвращает имя следующего файла в папке; в этом случае имя файла присваивается значению переменной $file_name.

    Чтобы исключить из рассмотрения имена файлов текущего (.) и родительского (..) каталога, используйте оператор if, который проверяет значение переменной $file_name на равенство "." и "..".

  • Начните оператор if:
  • Если значение переменной $file_name не равно ни ".", ни "..", то добавим его к значению переменной $file_list, используя операцию присоединения:

  • Закройте оператор if:
  • Закройте оператор цикла:
  • Добавьте к маркированному списку закрывающий тег:
  • Чтобы закрыть папку, введите код:
  • Завершите PHP-блок:
  • Добавьте следующий HTML-код:
  • Чтобы напечатать на экране имя папки, список файлов которой необходимо вывести на экран, введите смешанный код HTML и РНР:
  • Выведите список на экран:
  • Завершите HTML-документ:
  • Сохраните созданный файл с именем listfiles.php в папке для документов вашего Web-сервера. Полный листинг без комментариев, набранного вами файла, должен соответствовать приведённому на рис. 5.1.
  • Рис. 5.1. Листинг файла listfiles.php без комментариев.

    Теперь проверьте работоспособность созданного сценария.

  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/listfiles.php

    и нажмите клавишу Enter. Браузер загрузит страницу со списком файлов папки (pис. 5.2).

    Рис. 5.2. Страница со списком файлов.

    На Рис. 5.2 вы видите маркированный список файлов, храня-щихся в папке, заданной переменной $dir_name. Ваш список будет другим, так как вы будете использовать в качестве значения этой переменной путь к папке с файлами на вашем компьютере, то результатом работы сценария будет список файлов указанной вами папки. Проверьте, как работает этот сценарий с другими папками вашего компьютера. Если заданной вами папки не существует, то сценарий не сообщит об ошибке, он просто не вернет никаких результатов.

    Работа с функциями fopen( ) и fclose( )

    Перед тем как приступить к работе с файлами, вам необходимо немного узнать о функции fopen (), которая используется для открытия файла. Эта функция требует указания имени файла и режима. Результатом ее работы является указатель файла. Указатель файла содержит информацию о файле и используется как ссылка. Имя файла является полным путем к файлу, который вы хотите создать или открыть. В качестве режима может быть использован любой из режимов, перечисленных в таблице 5.1.

    Т а б л и ц а 5.1. Режимы используемые функцией fopen().

    Режимы используемые фунцией fopen()
    Режим
    Описание режима
    r Открывает сущствующий файл и читает из него данные. Указатель файла помещается в начало файла.
    r+ Открывает сущствующий файл для чтения или записи. Указатель файла помещается в начало файла.
    w Открывает файл для записи. Если файл с указанным именем не существует, то функция создает новый файл. Если файл существует, то функция удаляет все содержимое файла и помещает указатель в начало файла.
    w+ Открывает файл для чтения и записи. Если файл с таким именем не существует, то функция создает новый файл. Если файл существует, то функция удаляет все содержимое файла и помещает указатель в начало файла.
    a Открывает файл для записи. Если файлс с таким именем не существует, то фунrция создает новый файл. Если файл существует, то функция помещает указатель файла в конец файла.
    a+ Открывает файл для чтения и записи. Если файл с таким именем не существует, то функция создает новый файл. Если файл существует, то функция помещает указатель файла в конец файла.

    Создание нового файла

    Цель следующего сценария - просто создать новый пустой файл в указанном месте.

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к файлу:
  • Для того чтобы создаваемый сценарий работал на вашем компьютере, замените указанную в этой строке папку на полный путь к существующей папке на вашем компьютере.

    Создайте указатель файла и используйте функцию fopen() для открытия файла, указанного в предыдущей строке, для чтения и записи.

  • Для этого введите:
  • Термин указатель файла будет использоваться как ссылка на открытый файл, в последующих функциях, связанных с файлами.

  • Чтобы закрыть файл, введите:
  • Создайте сообщение об успешном создании файла:
  • Закройте РНР-блок:
  • Добавьте блок HTML:
  • Для вывода сообщения на экран, введите:
  • Закройте HTML-документ:
  • Сохраните созданный файл с именем newfile.php в папке для документов вашего Web-сервера. Полный листинг без комментариев, набранного вами файла, должен соответствовать приведённому на рис. 5.3.
  • Рис. 5.3. Листинг файла newfile.php без комментариев.

  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/newfile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу Создание нового файла (pис. 5.4).

    Рис. 5.4. Результат работы сценария newfile.php.

    На pис. 5.4 вы видите сообщение об успешном создании файла. Однако, если попытка создания файла окончится неудачно, или вы укажите несуществующий путь к создаваемому файлу, то на экран будет выведено сообщение об ошибке. Чтобы проверить это, выполните следующие действия:

  • Замените строку, задающую значение переменной $filename, следующей строкой с несуществующим путем:
  • Запустите браузер, в поле ввода Адрес: введите:

    http://localhost/newfile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу с сообщением об ошибке и невозможностью создания файла (pис. 5.5).

    Рис. 5.5. Страница с сообщением об ошибке.

    На рис. 5.5 вы видите сообщение об ошибке в пятой строке сценария. Это сообщение можно предотвратить, запретив вывод предупреждений и сообщений об ошибке, поместив символ @ перед именем функции. Для проверки этого выполните следующие действия:

  • Замените строку, задающую значение переменной $newflie, следующей строкой:
  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/newfile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу с одним сообщением о невозможности создания файла (pис. 5.6).

    Рис. 5.6. Страница с сообщением о невозможности создания файла.

    На pис. 5.6 вы видите только ваше сообщение, заданное в функции die(), а сообщения синтаксического анализатора РНР нет.

    Проверка существования файла

    Чтобы избежать некоторых возможных ошибок при работе с файловой системой, вы можете использовать функцию file_exists(), которая проверяет существование файла перед его созданием. В следующем ниже сценарии вы используете эту функцию и выведёте на экран одно из двух сообщений

    .
  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Чтобы создать переменную для хранения полного пути к файлу, введите:
  • В этом сценарии вы используете тот же файл, который создали в предыдущей программе. Это поможет проверить работу этого сценария при обнаружении ошибок.

  • Начните оператор if...else, анализирующий истинность результата функции file_exists()
  • :

  • Создайте переменную, хранящую текст сообщения о существовании файла с заданным именем:
  • Продолжите оператор if...else для определения действия, которое следует произвести, если файла с указанным именем не существует:
  • Создайте указатель файла и используйте функцию fopen() для открытия указанного в переменной $filename файла для чтения и записи. Если попытка создания файла окончится неудачей, то с помощью функции die() на экран будет выведено сообщение об ошибке:
  • Создайте переменную для хранения сообщения об успешном создании файла:
  • Закройте файл:
  • Завершите оператор if.. .else:
  • Завершите PHP-блок:
  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-документ:
  • Сохраните созданный файл с именем newfile_checkfirst.php в папке для документов вашего Web-сервера. Полный листинг без комментариев , набранного вами файла, должен соответствовать приведённому на рис. 5.7.
  • Рис. 5.7. Листинг файла newfile_checkfirst.php.

    Запустите Web-браузер, в поле ввода Адрес введите:

    http://localhost/newfile_checkfirst.php

    и нажмите клавишу Enter, Браузер загрузит страницу Создание нового файла (рис. 5.8).

    Рис. 5.8. Страница с сообщением о существовании файла

    Так как файл с именем mydata.txt уже существует (вы создали его с помощью сценария newfile.php), вы увидите в рабочем окне браузера сообщение о существовании файла.

    Если изменить имя файла в переменной $filename на другое имя (ещё не несуществующее имя, например mydate.xls), то в рабочее окно браузера будет выведено сообщение об успешном создании файла (pис.5.9).

    Рис. 5.9. Рабочее окно браузера с сообщением об успешном создании файла

    Просто создавать файл неинтересно. В следующем параграфе вы узнаете о том, как записать в файл данные.

    Добавление данных в файл

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

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к файлу:
  • Создайте переменную с именем $newstring для хранения строки, которую мы хотим записать в файл:
  • Использование символа новой строки (\n) вызовет перевод строки в этом месте текста.

    Создайте указатель файла и используйте функцию fopen() для открытия указанного в переменной $filename файла для чтения и записи. Если попытка открытия файла окончится неудачей, то с помощью функции die() на экран будет выведено сообщение об ошибке.

  • Для этого введите строку:
  • Используйте функцию fwrite() для записи текста ($newstring) в файл ($filename) и функцию die() для вывода на экран сообщения в случае, если операция записи окончится неудачей:
  • Создайте переменную для хранения сообщения об успешном создании файла:
  • Закройте файл:
  • Закройте PHP-блок:
  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-документ:
  • Сохраните созданный файл с именем writedata.php в папке для документов ваши Web-сервера.
  • Запустите свой Web-браузер, в поле ввода Адрес: введите:
  • http://localhost/writedata.php

    и нажмите клавишу Enter. Браузер загрузит страницу Добавление данных в файл (pис. 5.10).

    Рис. 5.10. Результат работы сценария writedata.php.

    Если при вводе текста сценария вы не допустили ошибок, то в рабочем окне браузера появится сообщение об успешном завершении операций создания, открытия и записи данных в указанный вами файл textfile.txt.

    Полный листинг, набранного вами файла, writedata.php должен соответствовать приведённому на рис. 5.11.

    Рис 5.11. Листинг сценария Writedata.php

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

    Чтение данных из файла

    В этом параграфе вы создадите сценарий, который прочтет данные из файла textfile.txt, созданного в предыдущем параграфе. Конечно, вы можете посмотреть этот файл с помощью любого текстового редактора, но это не представляет для нас интереса. РНР имеет очень удобную функцию fread (), которая выполнит для вас эту работу.

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к файлу, который вы создали в предыдущем параграфе (используйте свой собственный путь):
  • Создайте указатель файла и используйте функцию fopen() для открытия указанного в переменной $filename файла только для чтения. Если попытка открытия файла окончится неудачей, то с помощью функции die() на экран будет выведено сообщение об ошибке.

  • Для этого введите строку:
  • Создайте переменную с именем $file_contents и, используя функцию fread(), прочтите все строки из открытого файла ($whattoread), как одну длинную строку:
  • Второй аргумент, используемый функцией fread(), является длиной файла. Функция РНР filesize( ) определяет длину указанного в аргументе файла. Если длина файла неизвестна, то вы можете использовать функцию filesize($filename) для ее определения.

  • Создайте сообщение с содержимым файла:
  • Закройте файл:
  • Закройте РНР-блок:
  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-документ:
  • Сохраните созданный файл с именем readdata.php в папке для документов вашего Web-сервера. Листинг вашего файла writedata.php должен соответствовать приведённому на рис. 5.12.
  • Рис. 5.12. Листинг файла readdata.php без комментариев.

  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/readdata.php

    и нажмите клавишу Enter. Браузер загрузит страницу Чтение данных из файла (Рис. 5.13).

    Рис. 5.13. Результат работы сценария readdate.php.

    С первого взгляда может показаться, что цель создаваемого сценария достигнута. Однако это не совсем так. Если вы внимательно посмотрите на текст, отображенный браузером, то сможете заметить, что текст файла напечатан в одну строку, тогда как при записи текста в файл в предыдущем сценарии, мы вставили после первого предложения символ перевода строки. Дело в том, что символ перевода строки ничего не значит для Web-браузера, который воспринимает только код HTML. К счастью, группа разработкиков РНР предвидела это и создала функцию nl2br(), название которой представляет собой сокращение от английского newline-to-break (начать с новой строки). Будьте внимательны - вторая буква в функции латинская эл (l), а не цифра 1. Чтобы cозданный сценарий правильно отображал содержимое файла, необходимо внести в него незначительные изменения. Для этого выполните следующие действия:

  • Добавьте после строки, содержащей функцию fread (), текст:
  • Измените строку, определяющую переменную $msg, как показано ниже:
  • Сохраните измененный файл.
  • Полный листинг без комментарий, изменённого вами файла, readdata.php должен соответствовать приведённому на рис. 5.14, за исключением пути к вашему файлу указанному во второй строке сценария.

    Рис. 5.14. Изменённый листинг файла readdata.php.

  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/readdata.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу Чтение данных из файла, которая правильно отобразит содержимое файла (Рис. 5.15).

    Рис. 5.15. Страница Чтение данных из файла, правильно отображающая чтение данных из файла.

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

    Oтпpaвкa содержимого файла через E-mail

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

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к файлу textfile.txt, который вы создали в предыдущем параграфе (используйте свой собственный путь):
  • Создайте указатель файла и используйте функцию fopen() для открытия указанного в переменной $filename файла только для чтения. Если попытка открытия файла окончится неудачей, то с помощью функции die() на экран будет выведено сообщение об ошибке:
  • Создайте переменную с именем $file_contents и, используя функцию fread(), прочтите все строки из открытого файла ($whattoread) как одну длинную строку.
  • Добавьте переменную для хранения вашего адреса электронной почты:
  • Добавьте переменную для хранения темы сообщения:
  • Добавьте переменную для хранения заголовков письма:
  • Отправьте сообщение ($file_contents), используя функцию mail():
  • Создайте сообщение, которое будет выведено на экран после отправки содержимого файла:
  • Закройте файл:
  • Закройте РНР-блок:
  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-документ:
  • Сохраните созданный файл с именем mailcontents.php в папке для документов вашего Web-сервера.
  • Полный листинг файла, mailcontents.php должен соответствовать приведённому на рис. 5.16, за исключением пути к вашему файлу указанному во второй строке сценария.

    Рис. 5.16. Полный листинг файла mailcontents.php без комментариев.

  • Подключитесь к Интернету, используя локальную сеть или удаленный доступ к сети.
  • Запустите свой Web-браузер, в поле ввода Адрес: введите

    http://localhost/mailcontents.php

    и нажмите клавишу Enter. Браузер загрузит страницу Отправка содержимого файла через E-mail (pис. 5.17).

    Рис. 5.17. Результат работы сценария mailcontents.php.

    Сообщение на этой странице предлагает вам проверить свою почту.

    С помощью почтовой программы получите почту и откройте полученное письмо. Оно должно выглядеть примерно как на pис. 5.18.

    Рис. 5.18. Письмо, полученное с помощью почтовой программы.

    Как вы видите на рис. 5.18, содержимое файла отображается правильно (есть перевод строки после первого предложения). Таким образом, в отличие от предыдущего сценария, при отправке содержимого файла по почте нет необходимости использовать функцию nl2br(). Она необходима только для отображения содержимого файла в окне Web-браузера.

    Служебные действия с файловой системой

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

    Копирование файлов

    Функция сору() очень проста: для нее необходимо указать только имя существующего файла и имя нового файла.

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к существующему файлу (используйте свой собственный путь):
  • Создайте переменную для хранения полного пути к новому файлу (используйте свой собственный путь):
  • Создайте переменную для хранения результата (истина или ложь) выполнения функции:
  • Для подавления предупреждений синтаксического анализатора РНР используется символ @ в начале функции, а с помощью функции die() на экран будет выведено сообщение при неудачном завершении операции.

  • Начните оператор if. . .else для формирования сообщения о результате работы функции копирования:
  • Создайте сообщение об успешном копировании файла:
  • Продолжите оператор if. . .else и создайте сообщение для случая неудачного результата копирования:
  • Использование else в этом операторе не является необходимостью, но формирование альтернативной ветви является хорошим стилем программирования. В нашем же случае, если функция сору( ) окончится неудачей, то функция die() обеспечит выход из сценария и печать сообщения об ошибке еще до того, как будет достигнут оператор if. . .else.

  • Закройте РНР-блок:
  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-блок:
  • Сохраните созданный файл с именем copyfile.php в папке для документов вашего Web-сервера.
  • Полный листинг файла, copyfile.php должен соответствовать приведённому на рис. 5.19, за исключением пути к вашему файлу указанному во второй строке сценария

    Рис. 5.19. Полный листинг файла copyfile.php без комментариев

  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/copyfile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу Копирование файла (pис. 5.20)

    Рис. 5.20. Результат работы сценария copyfile.php.

    На Рис.5.20 вы видите сообщение об успешном завершении операции копирования. Чтобы проверить выдачу сообщения об ошибке, укажем несуществующий файл /nofolders/textfile.bak для значения переменной $new_filename.
  • Замените в сценарии строку, определяющую значение переменной $new_filename, следующим текстом:
  • Сохраните изменения в файле.
  • Фрагмент изменённой части выделен рамкой. Листинга файла copyfile.php приведён на рис. 5.21.

    Рис. 5.21. Фрагмент изменённой части листинга copyfile.php.

  • Запустите браузер, в поле ввода Адрес: введите:
  • http://localhost/copyfile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу Копирование файла с сообщением о невозможности скопировать файл (рис. 5.22).

    Рис. 5.22. Страница с сообщением об ошибке при копировании файла.

    Переименование файлов

    Так же как и функция сору(), функция rename() нуждается в указании существующего имени файла и имени нового файла. Сценарий, который вы сейчас создадите, переименует существующий файл, не копируя его.

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к существующему файлу (используйте свой собственный путь):
  • Создайте переменную для хранения полного пути к новому файлу (используйте свой собственный путь)
  • :

  • Создайте переменную для хранения результата (истина или ложь) выполнения функции:
  • Для подавления предупреждений используется @ в начале функции, а с помощью функции die() на экран будет выведено сообщение при неудачном завершении операции.

  • Начните оператор if...else для формирования сообщения, основанного на результате работы функции переименования:
  • Создайте сообщение об успешном переименовании файла:
  • Продолжите оператор if...else и сформируйте сообщение для случая неудачи пеpеименования:
  • Закройте РНР-блок:
  • Использование else в этом операторе не является необходимостью, но формирование альтернативной ветви является хорошим стилем программирования. В нашем же случае, если функция rename() окончится неудачей, то функция die() обеспечит выход из сценария и печать сообщения об ошибке еще до того, как будет достигнут оператор if. . .else.

  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-блок:
  • Сохраните созданный файл с именем renamefile.php в папке для документов вашего Web-сервера.
  • Полный листинг файла, renamefile.php должен соответствовать приведённому на рис. 5.23, за исключением пути к вашему файлу указанному во второй строке сценария

    Рис. 5.23. Полный листинг файла renamefile.php без комментариев.

  • Запустите свой Web-браузер, в поле ввода Адрес: введите:
  • http://localhost/renamefile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу Переименование файла (pис. 5.24.)

    Рис. 5.24. Результат работы сценария renamefile.php.

    На pис. 5.24. вы видите подтверждение успешного завершения операции переименования файла. Чтобы проверить выдачу сообщения об ошибке, укажите переименование уже несуществующего файла в вашей папке для значения переменной $new_filename.

  • Замените строку в сценарии, определяющую значение переменной $new_filename следующим текстом:
  • Сохраните изменения в файле.
  • Запустите свой Web-браузер, в поле ввода Адрес: введите:
  • http://localhost/renamefile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу с сообщением о невозможности переименовать файл (Рис. 5.25).

    Рис. 5.25. Страница с сообщением об ошибке при переименовании файла

    Удаление файлов

    Нужно очень внимательно относиться к использованию функции unlink(), потому что, удалив файл, вы уже не сможете его восстановить.

  • Создайте с помощью текстового редактора новый файл.
  • Начните РНР-блок:
  • Создайте переменную для хранения полного пути к файлу, который требуется удалить(используйте свои собственный путь):
  • Создайте переменную для хранения результата (истина или ложь) выполнения функции:
  • Для подавления предупреждений используется @ в начале функции, а с помощью функции die() на экран будет выведено сообщение при неудачном завершении операции.

  • Начните оператор if. . .else для вывода на экран сообщения, основанного на результате работы функции удаления:
  • Создайте сообщение об успешном удалении файла:
  • Продолжите оператор if. . .else и сформируйте сообщение для случая неудачи удаления файла:
  • Использование else в этом операторе не является необходимостью, но формирование альтернативной ветви является хорошим стилем программирования. В нашем же случае, если функция unlink() окончится неудачей, то функция die() обеспечит выход из сценария и печать сообщения об ошибке еще до того, как будет достигнут оператор if. . .else.

  • Закройте PHP-блок:
  • Добавьте блок HTML:
  • Выведите на экран сообщение:
  • Завершите HTML-блок:
  • Сохраните созданный файл с именем deletefile.php в папке для документов вашего Web-сервера.
  • Полный листинг файла, deletefile.php должен соответствовать приведённому на рис. 5.26, за исключением пути к вашему файлу указанному во второй строке сценария.

    Рис. 5.26. Полный листинг файла deletefile.php без комментариев.

  • Запустите свой Web-браузер, в поле ввода Адрес: введите:
  • http://localhost/deletefile.php

    и нажмите клавишу Enter.

    Браузер загрузит страницу Удаление файла (pис. 5.27).

    Рис. 5.27. Резльтат работы сценария deletefile.php.

    На Рис. 5.27 вы видите сообщение об успешном завершении операции удаления файла. Чтобы проверить выдачу сообщения об ошибке, попробуйте удалить ещё раз уже удалённый и поэтому

  • уже несуществующий файла в вашей папке.

    Запустите свой Web-браузер, в поле ввода Адрес: введите:
  • http://localhost/deletefile.php

    и нажмите клавишу Enter

    Браузер загрузит страницу (pис. 5.28) с сообщением о невозможности удалить файл.

    Рис. 5.28. Страница с сообщением об ошибке при удалении файла



    Hosted by uCoz