Действия с файлами в PHP открытие, создание, закрытие, редактирование
X
Заказать сайт
Заказать сайт

Действия с файлами в PHP открытие, создание, закрытие, редактирование

В этой большой статье я собрал с разных сайтов материал, который максимально полно опишет все важные функции по работе с файлами: открытие, создание, закрытие, редактирование, переименование, атрибуты (тип, размер, существует ли), позиция курсора, копирование, удаление, copy, rename, unlink

Открыть/создать файл, для каких-либо действий:

fopen("files/a.txt", "r"); где r –модификатор.

Модификаторы:
a - открывает файл только для записи, причём указатель помещается в конец файла.
a+ - то же самое, что и модификатор a, но также файл открывается ещё и для чтения.
r - открывает файл только для чтения, а указатель устанавливается в начало файла.
r+ - то же самое, что и модификатор r, но также файл открывается ещё и для записи.
w – если файл существует – обнуляет его содержимое и позволяет произвести запись данных. Если же файл не существует, то создает файл с этим именем.
w+ – аналогично параметру w с той лишь разничей, что позволяет произвести паралельное чтение из файла.
x – пытается создать файл для записи, но если файл уже существует, то возвращает ошибку.
x+ – пытается создать файл для чтения и записи, но если он уже существует, то возвращает ошибку.
Два режима работы с файлами: бинарный (обозначается b) и текстовый (обозначается t). Если Вы работаете с обычным текстовым файлом, то выбирайте текстовый режим, а если, например, с изображением, то бинарный.
Пример: $handle = fopen("files/a.txt", "rt"); - открываем для чтения в режиме текста
Пример: $h = fopen("my_file.1.txt","w"); - создает файл, если он еще не создан
Пример: <?php $fl=@fopen("images/foto15.gif", "rb");
if(!$fl) { echo "Ошибка открытия файла"; }
echo $fl;?> - открывает файл, если он существует, иначе выдает ошибку

Чтение/вывод содержимого файлв
После того, как соединение с файлом открыто fopen, можно произвести чтение из этого файла.

Функция fgets - считывание данных из файла без учета размера файла. Если параметр длинна не указан, то файл будет считан целиком.
Синтаксис: fgets (имя файла, размер файла(необязательно) )
Пример: <?php $h = fopen("my_file.1","r+");
$content = fgets($h,11); fclose($h); echo $content; ?>

Функция fread - считывание данных из файла с учетом размера файла.
Синтаксис: fread (имя файла, размер файла)
Параметр длинна позволяет указать количество информации (в байтах), которое будет считано из файла. Длину файла можно узнать при помощи функции filesize().
Пример: <?php $h = fopen("my_file.1","r+");
$content = fread($h, filesize("my_file.1")); fclose($h); echo $content; ?>

Функция file_get_contents - позволяет произвести чтение файла в строку и имеет следующий синтаксис:
Синтаксис: file_get_contents (имя файла)
Пример: <?php $a = file_get_contents ("file1.txt"); echo $a; ?>

Функция fgetss - чтение из файла, параллельно удаляя все встретившиеся HTML теги.
Синтаксис: fgetss(указатель на файл, размер файла, допустимые теги])
Пример: Есть file1.txt с содержимым: <h1>Заголовок H1 </h1> <b>Жирный шрифт </b><p>Параграф</p>
А теперь произведем чтение из файла, параллельно удалив все HTML теги, кроме <H1>:
<?php $h = fopen("file1.txt","r"); while (!feof ($h))
{ $content = fgetss($h, filesize("file1.txt"), '<h1>');
echo $content,"<br>"; } fclose($h); ?>
Если не произошло окончание файла !feof ($h), то считывается данные из файла, с паралельным удалением всех встречающихся HTML тегов, за исключением <h1>.

Функция readfile() - выводит содержимое файла с возможностью вывода номера строки:
Синтаксис: readfile (имя файла)
Пример: <?php $n = readfile ("my_file.1"); echo "<br>".$n; ?>

Функция file - позволяет считать данные из файла, записав их в массив:
Синтаксис: file (имя файла)
Пример: <?php $arr = file ("file1.txt");
foreach($arr as $i => $a)
echo $i,": ",htmlspecialchars($a), "<br>"; ?>
В данном примере мы использовали функцию htmlspecialchars() для перевода всех символов HTML форматирования в их специальную кодировку для вывода их на экран.
Пример: Подсчет количества строк в файле
<?php $content=file("file.txt");
echo count($content); ?>

Запись в файл
Запись в файлы осуществляется функциями fwrite() и fputs(), которые абсолютно идентичны.
Синтаксис: fwrite(куда записать, что записать, количество символов);
Третий необязательный параметр задает количество символов в строке, которые должны быть записаны. Если третий параметр не указан, записывается вся строка.
Пример: <?php $fd=fopen("file.txt","r"); fwrite($fd, "Привет, всем!"); fclose($fd); ?>

file_put_contents (имя файла, что записать) - запись в файл. Функция идентична последовательным успешным вызовам функций fopen(), fwrite() и fclose().
Пример: <?php
$file = 'people.txt'; // Открываем файл для получения существующего содержимого
$current = file_get_contents($file); // Добавляем нового человека в файл
$current .= "John Smith\n"; // Пишем содержимое обратно в файл
file_put_contents($file, $current); ?>

Установка курсора при чтении/записи файла
feof() - при чтении файла, проверка, не достиг ли указатель конца файла.
Пример: <?php
$fl=fopen("phpstage2.html", "r");
while(!feof($fl)) { $cont=fgets($fl); echo $cont; }
fclose($fl); ?>
fseek() - Устанавливает смещение в файловом указателе
Синтаксис: fseek(имя файла, смещение измеряемое в байтах)
Пример: <?php $fp = fopen('somefile.txt');
$data = fgets($fp, 4096); // читаем немного данных
fseek($fp, 0); // перемещаемся назад к началу файла
?>
ftell() — Сообщает текущую позицию чтения/записи файла
Пример: <?php
$fp = fopen("/etc/passwd", "r"); // открываем файл и читаем немного данных
$data = fgets($fp, 12);
echo ftell($fp); // // где же мы ? - 11
fclose($fp); ?>

Блокировка файла
flock(имя файла, код режима) - блокирует файл для его использования только одному приложению.
Код режима:
1 - Блокировка чтения
2 - Блокировка записи
3 - Снятие существующей блокировки
Пример: <?php $fl=fopen("192.php", "w+"); flock($fl, 1); ?>

Атрибуты файлов
file_exists(имя_файла) — проверяет, существует ли файл и возвращает true, если файл существует и false в противном случае.
fileatime(имя_файла) — возвращает время последнего обращения к файлу.
filemtime(имя_файла) — возвращает время последней модификации содержимого файла.
filesize(имя_файла) — возвращает размер файла в байтах.
pathinfo - возвращает информацию о пути к файлу, расширению.
Пример: $myfile_name = '/www/htdocs/index.html';
echo pathinfo($myfile_name, PATHINFO_BASENAME)."<br>"; //index.html
echo pathinfo($myfile_name, PATHINFO_EXTENSION)."<br>";//html
echo pathinfo($myfile_name, PATHINFO_DIRNAME); //www/htdocs
filetype(имя_файла) — возвращает тип файла ().Возможными значениями являются fifo, char, dir, block, link, file, socket и unknown.

Закрыть файл. Делается это с помощью функции fclose().

Копирование файла из одной директории в другую
copy("dr/example.txt", "dr/drom.txt"); //откуда копируем, куда копируем (можно менять имя)

Перемещение/переименование файла
rename("/tmp/tmp_file.txt", "/home/user/login/docs/tmp_file.txt"); //перемещение
rename("/tmp/tmp_file.txt", "/tmp/tmp_file1.txt "); //переименование

Удаление файла
unlink('/er/test.html'); //удаляем файл

 

 

| | Действия с файлами в PHP открытие, создание, закрытие, редактирование | В этой большой статье я собрал с разных сайтов материал, который максимально полно опишет все важные функции по работе с файлами: открытие, создание, |

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>