Содержание
5.3. Создание файла и директории средствами PHP
Введение
Вывод списка файлов директории
Для вывода списка файлов директории в PHP чаще всего используют функцию scandir() для простого перечисления. scandir() возвращает массив файлов и папок.
Пример scandir():
- function_scandir.php
<?php /* Это тестовый файл function_scandir.php */ /* Наименование файла текстом синего цвета*/ echo ' <span style="color: blue;"> function_scandir.php </span><br/>'; ///////////////////////////////////////////// /* Пример работы кода */ ///////////////////////////////////////////// $dir = './'; // Укажите путь к папке, например корень "./" $files = scandir($dir); foreach ($files as $file) { if ($file !== '.' && $file !== '..') { // Исключаем . и .. echo "Это то, что находиться в этой директории: <br/>"; echo $file . '<br>'; } } ?>
Создадим в блокноте новый файл, запишем в него вышеприведенный код и сохраним его в корне приложения как function_scandir.php
Откроем файл function_scandir.php в браузере, перейдя по ссылке http://localhost/function_scandir.php
Создание директорий
Функция mkdir() создает новую папку в указанной директории. Если создание проходит успешно, возвращает значение True. При создании новой папки можно задать права на доступ к ней параметром $mode. Указав параметру $recursive значение True, можно выполнить создание нескольких вложенных папок.
Версия PHP 4 и выше.
function bool mkdir (string $pathname [, int $mode [, bool $recursive [, resource $context]]])
Примеры использования функции mkdir():
- mkdir()
mkdir("newfolder"); // создание папки в текущей директории mkdir("../newfolder"); // на уровень ниже mkdir("/folder1/folder2/newfolder"); // полный путь mkdir("newfolder", 0777); // создание папки с назначением прав /*Если нужно создать несколько вложенных папок, нужно задать $recursive = True.*/ mkdir("folder1/folder2/newfolder", 0777, True); // создание папки в текущей директории
Файл test_creat_dir.php
Создадим в блокноте новый файл, запишем в него нижеприведенный код и сохраним его в корне приложения как test_creat_dir.php
- test_creat_dir.php
<?php /* Это тестовый файл test_creat_dir.php */ /* Наименование файла текстом синего цвета*/ echo ' <span style="color: blue;"> test_creat_dir.php </span><br/>'; //////////////////////////////////////////////// //////////* Пример работы кода *//////////////// //////////////////////////////////////////////// //Примеры использования функции mkdir// mkdir("newfolder"); // создание папки в текущей директории mkdir("newfolder_0777", 0777); // создание папки с назначением прав //Если нужно создать несколько вложенных папок, нужно задать $recursive = True. mkdir("folder1/folder2/newfolder", 0777, True); // создание папки в текущей директории $dir = './'; // Укажите путь к папке $files = scandir($dir); foreach ($files as $file) { if ($file !== '.' && $file !== '..') { // Исключаем . и .. echo $file . '<br>'; } } ?>
Откроем файл test_creat_dir.php в браузере, перейдя по ссылке http://localhost/test_creat_dir.php
Браузер вывел нам информацию о имеющихся файлах и директориях
- folder1 - директория созданная файлом test_creat_dir.php
- function_scandir.php - файл, созданный в разделе Вывод списка файлов директории
- newfolder - директория созданная файлом test_creat_dir.php
- newfolder_0777 - директория созданная файлом test_creat_dir.php
- test_creat_dir.php - наш файл test_creat_dir.php
Проверим нашу директорию в проводнике
Нам отображается вложенная папка newfolder в директории C:\xampp\htdocs\folder1\folder2
Создание файлов
Создание файлов в PHP осуществляется с помощью функций file_put_contents() (для быстрой записи) или пары fopen() и fwrite() (для более гибкого управления). Если файл не существует, он будет создан; если существует — перезаписан (по умолчанию). Также возможно создание пустых файлов или папок.
Основные способы создания файлов:
file_put_contents('file.txt', 'Текст'): Самый простой способ, объединяющий создание и запись данных в одну строку.
- file_put_contents.php
// Создание файла с текстом file_put_contents('data.txt', 'Содержимое файла'); // Создание пустого файла file_put_contents('empty.txt', '');
fopen($filename, 'w'): Открывает файл для записи. Если файла нет, он будет создан.
- file_put_contents.php
$file = fopen('newfile.txt', 'w'); // Создание fwrite($file, 'Текст для записи'); // Запись fclose($file); // Закрытие
Особенности: Права доступа: Убедитесь, что у скрипта есть права на запись в целевую директорию. Режимы fopen: Режим 'w' создает новый файл или перезаписывает существующий. Режим 'a' создает файл или добавляет данные в конец существующего. Создание папок: Для создания папки перед созданием файла используется mkdir('folder'). Пример создания файла с данными:
- file_put_contents.php
$filename = 'log.txt'; $text = "Дата: " . date('Y-m-d H:i:s'); file_put_contents($filename, $text);
Файл test_creat_file.php
Создадим в блокноте новый файл, запишем в него нижеприведенный код и сохраним его в корне приложения как test_creat_file.php.
- test_creat_file.php
<?php /* Это тестовый файл test_creat_file.php */ /* Наименование файла текстом синего цвета*/ echo ' <span style="color: blue;"> test_creat_file.php </span><br/>'; ///////////////////////////////////////////// /* Пример работы кода */ ///////////////////////////////////////////// //Примеры использования функции mkdir// $myfile = fopen("newfile.txt", "w") or die("Не удается открыть файл!"); $txt = "Иванов Андрей\n"; fwrite($myfile, $txt); $txt = "Петрова Ирина\n"; fwrite($myfile, $txt); fclose($myfile); $dir = './'; // Укажите путь к папке $files = scandir($dir); foreach ($files as $file) { if ($file !== '.' && $file !== '..') { // Исключаем . и .. echo $file . '<br>'; } } ?>
Откроем файл test_creat_file.php в браузере, перейдя по ссылке http://localhost/test_creat_file.php
Браузер вывел нам информацию о имеющихся файлах в директории. Синим цветом test_creat_file.php отображается наименование открытого файла
- newfile.txt - новый созданный файл newfile.txt
- test_creat_file.php - наш тестовый файл test_creat_file.php
Откраем в блокноте наш созданный файл newfile.txt
Мы видим записи в нашем файле newfile.txt
Файл creat_dir_and_file.php
Файл creat_dir_and_file.php - это вспомогательный файл данного руководства, он будет будет создавать на сервере необходимые для главы директории.
Создадим в блокноте новый файл, запишем в него нижеприведенный код и сохраним его в корне приложения как creat_dir_and_file.php.
