Построчное считывание: fgets(), fgetss() и fgetcsv().




fgets ($f, $dlina); $order= fgets($fp, 100);

Эта функция используется для считывания из файла по одной строке за один раз. Считывание будет выполняться до тех пор, пока не встретится символ новой строки (\n), EOF или из файла не будут прочитаны (dlina-1) байт. Макс длина считываемой строки равна указанной длине минус 1 байт.

string fgetss (int fp, int length, string [allowable_tags]);

Эта функция будет избавляться от любых дескрипторов РНР и HTML, найденных в строке. Если в файле необходимо оставить конкретные дескрипторы, они должны быть включены в строку allowable_tags. Функцию fgetss() следует использовать для обеспечения безопасности при считывании файла, записанного кем-либо другим или содержащего данные, введенные пользователем.

array fgetcsv (int fp, int length, string [delimiter]);

Используется, если требуется восстановить переменные отдельно одна от другой, а не в виде строки текста. Ей необходимо передать разделитель, используемый для разделения полей. Параметр length должен быть больше длины самой длинной строки считываемого файла.

$order = fgetcsv($fp, 100, "\t"); //получает строку из файла и разбивает ее при каждом обнаружении символа табуляции (\t). Результирующие данные помещаются в массив (в этом примере — в $order).


Считывание всего файла: readfile(), fpassthru(), file(). Вместо считывания по одной строке из файла за один проход можно считывать весь файл. Существуют три различных способа.

Первый: int readfile (string имя_файла, int [use_include_path])

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

readfile("$DOCUMENT_ROOT/../orders/orders.txt"); Функция readfilc() открывает файл, повторяет его содержимое в стандартном выводе (окне браузера), а затем закрывает файл;

Во-вторых, можно использовать функцию fpassthru ().

Вначале необходимо открыть файл с помощью функции fopen(). Затем указатель файла можно передать в функцию fpassthru(), которая загрузит содержимое файла, начиная с позиции, заданной указателем, в стандартный вывод. По завершении этого процесса функция закрывает файл. Функция fpassthru() возвращает значение true, если считывание было выполнено Успешно, и false — в противном случае.

$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", "r"); fpassthru($fp);

Третья возможность считывания всего файла — использование функции file (). Эта Функция идентична функции readfile() за исключением того, что вместо повторения файла в стандартном выводе она преобразует его в массив. $filearray = file($fp);

Эта строка приведет к считыванию всего файла в массив, названный $filearray. каждая строка файла сохраняется в отдельном элементе массива.

Считывание символа: fgetc(). В качестве своего единственного параметра она принимает указатель файла и возвращает следующий символ файла

while (!feof($fp)){

$char = fgetc($fp); if (!feof($fp))

echo ($char=="\n"? "<br>": $char);}

Используя функцию fgetc(), этот код считывает из файла по одному символу за раз и сохраняет его в переменной $char, пока не будет достигнут конец файла. Затем замещаются текстовые символы конца строки \n HTML-разделителями строк <bг>.

fgetc() будет возвращать символ EOF(в отличие от fgets()). После считывания символа приходится выполнять проверку с помощью функции feof(), поскольку символ EOF не должен отображаться.

Считывание строк произвольной длины: fread(). string fread(int fp, int length);

Функция считывает length байтов или все байты до конца файла.

Проверка существования файла: file_exists().

if (file_exists("$DOCUMENT_ROOT/../orders/orders.txt")) echo "There are orders waiting to be processed.";

else echo "There are currently no orders.";

Выяснение размера файла: filesize(). Она возвращает размер файла, выраженный в байтах:

echo filesize("$DOCUMENT_ROOT/../orders/orders.txt");

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

$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", "r");

echo fread($fp, filesize("$DOCUMENT_ROOT/../orders/orders.txt"));

fclose($fp);

Удаление файла unlink(). unlink("$DOCUMENT_ROOT/../orders/orders.txt");

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: