Запись в файл

Функция

int fwrite(int fp, string string [, int length])

записывает строку string в файл с дескриптором fp. Если указан параметр length и он меньше длины строки string, то записывается только length символов. Данная функция имеет функцию-синоним fputs().

Пример 4.6.141. Запись данных в текстовый файл:

1. Запись в файл StudentNames.txt фамилий студентов (по одной фамилии в строке):

// Массив фамилий студентов

$studentName = array("Ivanov", "Petrov", "Sidorov");

// Открытие файла StudentNames.txt для записи

$outputFile = fopen("D:/PHPData/StudentNames.txt", "w");

// Запись в файл фамилий студентов в цикле

for($i = 0; $i < count($studentName) - 1; $i++)

// Запись текущей фамилии

fputs($outputFile, $studentName[$i]."\n");

// Запись последней фамилии

fputs($outputFile, $studentName[$i]);

// Закрытие файла для записи

fclose($outputFile);

Содержимое файла StudentNames.txt будет иметь следующий вид:

2. Запись массива $studentName из предыдущего примера в файл StudentNames1.txt в одну строку:

// Открытие файла StudentNames1.txt для записи

$outputFile = fopen("D:/PHPData/StudentNames1.txt", "w");

// Преобразование массива в строку

$outputString = ",".implode(",", $studentName);

// Запись строки в файл

fputs($outputFile, $outputString);

// Закрытие файла для записи

fclose($outputFile);

Содержимое файла StudentNames1.txt будет иметь следующий вид:

3. Добавление фамилии студента в файл StudentNames.txt фамилий студентов, записанный в примере 4.6.141(1):

// Открытие файла StudentNames.txt для добавления

$outputFile = fopen("D:/PHPData/StudentNames.txt", "a");

// Задание новой фамилии

$newStudentName = "\nIvanenko";

// Запись новой фамилии

fputs($outputFile, $newStudentName);

// Закрытие файла для добавления

fclose($outputFile);

После добавления новой фамилии содержимое файла StudentNames.txt примет следующий вид:

Функция

int fprintf(int fp, string format [, mixed args])

записывает в файл с дескриптором fp значения списка аргументов args в соответствии с форматом для каждого аргумента, заданным в параметре format. Функция возвращает длину отформатированной строки.

Функция

int printf(string format [, mixed args])

действует аналогично функции fprintf(), но выводит отформатированную строку на экран и возвращает длину отформатированной строки.

Функция

string sprintf(string format [, mixed args])

действует аналогично функции fprintf(), но выводит отформатированную строку как возвращаемое значение.

Функция

string vsprintf(string format, array args)

действует аналогично функции sprintf(), но список аргументов для форматируемой строки задается в виде массива.

Каждый формат для аргумента в функциях fprintf(), printf(), sprintf()и vsprintf() состоит из знака процента "%", за которым следует один или несколько следующих элементов в том порядке, в котором они перечислены ниже:

1. Символ заполнения, который используется для дополнения результата до необходимой длины (в качестве этого символа может быть либо пробел, либо 0 – по умолчанию используется пробел). Кроме этого можно указать любой символ-заполнитель, если поставить перед ним символ "'".

2. Символ "-" – выравнивания выводимой строки влево (по умолчанию строка выравнивается вправо).

3. Длина выводимого поля – целое число (по умолчанию длина поля равна длине выводимой строки.

4. Символ "." и цифра – количество цифр после запятой для числовых данных типа float (по умолчанию – количество цифр после запятой в представлении числа).

5. Символ – описатель типа аргумента.

Все элементы формата, кроме описателя типа аргумента являются необязательными.

Описатель типа аргумента может иметь следующие значения:

· b – аргумент трактуется как число типа int и выводится в виде двоичного числа;

· o – аргумент трактуется как число типа int и выводится в виде восьмеричного числа;

· x – аргумент трактуется как число типа int и выводится в виде шестнадцатеричного числа (в нижнем регистре букв);

· X – аргумент трактуется как число типа int и выводится в виде шестнадцатеричного числа (в верхнем регистре букв);

· c – аргумент трактуется как число типа int и выводится в виде символа с соответствующим кодом ASCII;

· d – аргумент трактуется как число типа int и выводится в виде десятичного числа со знаком;

· u – аргумент трактуется как число типа int и выводится в виде десятичного числа без знака;

· e – аргумент трактуется как число типа float и выводится с показателем степени;

· f – аргумент трактуется как число типа float и выводится в виде десятичного числа с точкой;

s – аргумент трактуется как строка (тип string).

Пример 4.6.142. Использование функции printf():

В следующем фрагменте программы переменным присваиваются значения, и эти значения выводятся на экран:

// Присваивание значений переменным

$a = 5;

$b = 5.6E-5;

$c = 0.8;

$d = 'abc';

$e = 'cdef';

$f = 15;

// Вывод имен и значений переменных на экран

fprintf($outputFile, "%5d %8.2e %8.2f\n", $a, $b, $c);

fprintf($outputFile, "%6s %-6s %'*6d", $d, $e, $f);

// Вывод имен и значений переменных $a и $f

// в строку $outputString1

$outputString1 = sprintf("\$a=%b;\$f=%o", $a, $f);

// Вывод строки $outputString1 на экран

print "\n\$outputString1='$outputString1'";

// Вывод имен и значений переменных $c и $e

// в строку $outputString2

$outputString2 = vsprintf("%6.2e %s",

explode(' ', $c.' '.$e));

// Вывод строки $outputString2 на экран

print "\n\$outputString2='$outputString2'";

// Открытие файла Variables.txt для записи

$outputFile = fopen("D:/PHPData/Variables.txt", "w");

// Вывод значений переменных в файл

fprintf($outputFile, "%5d %8.2e %8.2f\n", $a, $b, $c);

fprintf($outputFile, "%6s %-6s %'*6d", $d, $e, $f);// Закрытие файла для записи

fclose($outputFile);

На экран будут выведены следующие строки:

а содержимое файла Variables.txt будет иметь следующий вид:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: