Функция
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 будет иметь следующий вид: