Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

файловая система PHP

файловая система PHP

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

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

file_put_contents(__DIR__.'/text.txt','');//Создаем файл text.txt

$data = "Доброе утро!";
file_put_contents(__DIR__.'/text.txt',$data);// Создаем файл text.txt и записываем туда данные

file_put_contents(__DIR__.'/text.txt',$data."\r", FILE_APPEND | LOCK_EX);// Создаем файл text.txt и дописывает туда данные

Как видите функция file_put_contents может принимать три параметра file_put_contents(Полный путь и название нового файла, Данные для записи в файл, флаг).

Первые два параметра обязательные, поэтому даже если вы хотите создать файл ничего туда не записывая. Вам все равно придется указать второй параметр в виде пустой строки. Третьим параметрам являются так называемые флаги. FILE_APPEND отвечает за дописывание в файл данных , а LOCK_EX - блокирует файл во время записи.

Да если кто не знает , то __DIR__ - это полный путь к текущему каталогу где выполняется данный код.

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

$text = file_get_contents(__DIR__.'/text.txt');
echo $text;

Как видите мы благополучно считали данные с ранее созданного файла. file_get_contents(Полный путь к файлу)

Отмечу что с помощью данной функции мы можем считывать данные с сайтов, указав в качестве пути их домен. К примеру

$text = file_get_contents('https://twitter.com/');
echo $text;

Как видите у нас подгрузились элементы данного сайта, если же мы хотим посмотреть его исходный код , то достаточно заэкранировать специальные символы:

echo htmlspecialchars($text);

Такой подход бывает используют при парсинге сайтов.

Теперь перейдем к удалению файлов. Для этого используется функция unlink()

unlink(__DIR__.'/text.txt');

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

Это можно исправить написав условие для проверки на существование данного файла.

if(file_exists(__DIR__ . '/text.txt')) {
    unlink(__DIR__ . '/text.txt');
}

здесь с помощью функции file_exists(путь к файлу) мы проверяем существует ли файл с таким путем. Если да , то функция возвращает нам true и условие if выполняется удаляя данный файл , а если же нет ,возвращается false и данное условие уже не выполняется, так как файла с таким путем уже нет.

Создание папок осуществляется с помощью команды mkdir(Полный путь)

mkdir(__DIR__."/css");

мы создали в текущей директории папку с названием css теперь чтобы к примеру в папке css создать файл style.css, мы можем воспользоваться переходами по папкам.

chdir(__DIR__."/css");
file_put_contents('style2.css','');

Функции chdir() передается путь относительно которого мы сможем создавать новые файлы и папки.

Да и вот что еще, если мы захотим создать папку в директории где уже есть папка с таким же названием у нас возникнет ошибка. Здесь опять надо проверить на существование в директории папки по пути:

if(!is_dir(__DIR__.'/css')) {
    mkdir(__DIR__ . '/css');
}

Функция is_dir(путь) проверяет существует ли директория с заданным путем . В нашем условии говорится если директория не существует , то мы создаем ее.

За удаление директорий в php отвечает функция rmdir(путь):

if(is_dir(__DIR__.'/css')) {
    rmdir(__DIR__ . '/css');
}

Функция rmdir() удаляет папку причем папка на момент удаления должна быть абсолютно пуста иначе возникнет ошибка.

Чтобы проверить содержимое папки мы можем воспользоваться функцией glob()

print_r(glob(__DIR__.'/css/*', 0));

Здесь функция glob() возвращает массив значений полных путей файлов и папок которые содержаться в директории css. Следовательно когда количество элементов в массиве станет равно нулю только тогда мы сможем удалить данную директорию.

Общую суть я думаю вы уловили. На этом я данную статью подвожу к концу. Надеюсь она была для вас содержательна и полезна. Я желаю вам успехов и удачи! Пока.

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm