Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP работа с файлами.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
68 Кб
Скачать
☆

Запись в файл

is_writeable( )

Функция is_writeable( ) позволяет убедиться в том, что файл существует и для него разрешена операция записи. Возможность записи проверяется как для файла, так и для каталога. Синтаксис функции is_writeable( ):

bool is_writeable (string файл)

fwrite ( )

Функция fwrite( ) записывает содержимое строковой переменной в файл, заданный файловым манипулятором. Синтаксис функции fwrite( ):

int fwrite(int манипулятор, string переменная [, int длина])

Если при вызове функции передается необязательный параметр длина, запись останавливается либо после записи указанного количества символов, либо при достижении конца строки. Проверка возможности записи в файл продемонстрирована в следующем примере:

<?

$data = "08:13:00|12:37:12|208.247.106.187|Win98"; // Информация о трафике на пользовательском сайте

$filename = "somefile.txt";

if ( is_writeable($filename) ) : // Если файл существует и в него возможна запись

$fh = fopen($filename, "a+"); // Открыть файл и установить указатель текущей позиции в конец файла

$success - fwrite($fh, $data); // Записать содержимое $data в файл

fclose($fh); else : // Закрыть файл

print "Could not open Sfilename for writing";

endif;

?>

fputs( )

Функция fputs( ) является псевдонимом fwrite( ) и имеет точно такой же синтаксис.

Чтение из файла

is_readable( )

Функция i s_readable( ) позволяет убедиться в том, что файл существует и для него разрешена операция чтения. Возможность чтения проверяется как для файла, так и для каталога. Синтаксис функции is_readable( ):

boo! is_readable (string файл]

Скорее всего, РНР будет работать под идентификатором пользователя, используемым web-сервером (как правило, «nobody»), поэтому для того чтобы функция is_readable( ) возвращала TRUE, чтение из файла должно быть разрешено всем желающим. Следующий пример показывает, как убедиться в том, что файл существует и доступен для чтения:

if ( is_readable($filename) ) :

// Открыть файл и установить указатель текущей позиции в конец файла

$fh = fopen($filename, "r");

else :

print "$filename is not readable!";

endif;

fread( )

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

int fread(int манипулятор, int длина)

Манипулятор должен ссылаться на открытый файл, доступный для чтения (см. описание функции is_readable( )). Чтение прекращается после прочтения заданного количества байт или при достижении конца файла. Рассмотрим текстовый файл pastry.txt, приведенный в листинге 7.1. Чтение и вывод этого файла в браузере осуществляется следующим фрагментом:

$fh = fopen('pastry.txt', "r") or die("Can't open file!");

$file = fread($fh, filesize($fh));

print $file;

fclose($fh);

Используя функцию fllesize( ) для определения размера pastry.txt в байтах, вы гарантируете, что функция fread( ) прочитает все содержимое файла.

fgetc( )

Функция fgetc( ) возвращает строку, содержащую один символ из файла в текущей позиции указателя, или FALSE при достижении конца файла. Синтаксис функции fgetc( ):

string fgetc (int манипулятор)

Манипулятор должен ссылаться на открытый файл, доступный для чтения (см. описание функции is_readable( ) ранее в этой главе). В следующем примере продемонстрированы посимвольное чтение и вывод файла с использованием функции fgetc( ):

$fh = fopen("pastry.txt", "r"); while (! feof($fh)) :

$char = fgetc($fh):

print $char; endwhile;

fclose($fh);

fgets( )

Функция fgets( ) возвращает строку, прочитанную от текущей позиции указателя в файле, определяемом файловым манипулятором. Файловый указатель должен ссылаться на открытый файл, доступный для чтения (см. описание функции is_readable( ) ранее в этой главе). Синтаксис функции fgets( ):

string fgets (int манипулятор, int длина)

Чтение прекращается при выполнении одного из следующих условий:

  • из файла прочитано длина — 1 байт;

  • из файла прочитан символ новой строки (включается в возвращаемую строку);

  • из файла прочитан признак конца файла (EOF).

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

$fh = fopen("pastry.txt", "r");

while (! feof($fh));

$line = fgets($fh, 4096);

print $line. "<br>";

endwhile;

fclose($fh);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]