Содержание

Краткое содержание

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

Браузер вывел нам информацию о имеющихся файлах и директориях

Проверим нашу директорию в проводнике

Нам отображается вложенная папка 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

Файл creat_dir_and_file.php

Файл creat_dir_and_file.php - это вспомогательный файл данного руководства, он будет будет создавать на сервере необходимые для главы директории.
Создадим в блокноте новый файл, запишем в него нижеприведенный код и сохраним его в корне приложения как creat_dir_and_file.php.

creat_dir_and_file.php
<?php
/* Это файл 
creat_dir_and_file.php
для создания файлов и директорий руководства 
*/
// создание корневой директории
mkdir("ucms");
// создание вложенной директории с назначением прав
mkdir("ucms/library");
mkdir("ucms/users");
// создание вложенной директории с назначением прав
mkdir("ucms/includes", 0755);
// Создание пустого файла
file_put_contents('ucms/index.php', '');
file_put_contents('ucms/help.txt', '');
file_put_contents('ucms/ license.txt', '');
file_put_contents('ucms/readme.html', '');
file_put_contents('ucms/library/lib.php', '');
file_put_contents('ucms/library/404.php', '');
echo "Директории и файлы устешно созданы"
?>

Откроем файл creat_dir_and_file.php в браузере, перейдя по ссылке http://localhost/creat_dir_and_file.php

Проверим создание директорий и файлов, а так же расширений файлов в проводнике

Дополнения и Файлы

см. также: