is_writable
Функция is_writable
позволяет убедиться в том, что файл существует и для него разрешена операция записи. Возвращает TRUE, если файл filename
существует и доступен для записи. Аргумент filename
может быть именем директории, что позволяет вам проверять директории на доступность для записи.
/* СИНТАКСИС */
//
// bool is_writable ( string $filename )
//
/**************/
if (is_writable($path)) {
$fp = fopen($path, "w");
...
} else
exit(1);
fwrite
fwrite
записывает содержимое string
в файловый поток handle
(бинарно-безопасная запись в файл).
$fp = fopen($path, "w");
for($i = 0; $i < 10; ++$i) {
$ms = microtime(TRUE); // время с микросекундами
$str = $i . $sep . md5($ms) . $sep . $ms . PHP_EOL; // правильный конец строки
fwrite($fp, $str); // длину можно не указывать
usleep(50000); // замедлене с микросекундами
}
fclose($fp);
fprintf
fprintf()
- записывает отформатированную строку в поток. Записывает строку, созданную с использованием строки формата format
, в поток, дескриптор которого передается в параметре handle
. Возвращает длину записанной строки.
/* СИНТАКСИС */
//
// int fprintf ( resource $handle , string $format [, mixed $args [, mixed $... ]] )
//
/**************/
$fp = fopen($path, "w");
$data = array(
array(24, "Petrov Pety", "Gorodec"),
array(31, "Ivanov Ivan", "Zavoljie"),
array(16, "Sidorov Sidor", "Pravdinsk"),
array(55, "Mariana Mary", "Chkalovsk"),
);
foreach($data as $key => $val) {
fprintf($fp, "%d\t%s\t%s" . PHP_EOL, $val[0], $val[1], $val[2]);
}
fclose($fp);
Спецификатор типа
Спецификатор |
Преобразование |
% |
символ процента. Аргумент не используется. |
b |
аргумент трактуется как целое и выводится в виде двоичного числа. |
c |
аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII. |
d |
аргумент трактуется как целое и выводится в виде десятичного числа со знаком. |
e |
аргумент трактуется как число в научной нотации (например, 1.2e+2). Описатель точности указывает на количество знаков после запятой, начиная с версии PHP 5.2.1. В более ранних версиях он обозначал количество значащих цифр (на один знак меньше). |
f |
аргумент трактуется как число с плавающей точкой и также выводится в зависимости от локали. |
o |
аргумент трактуется как целое и выводится в виде восьмеричного числа. |
s |
аргумент трактуется как строка. |
u |
аргумент трактуется как целое и выводится в виде десятичного числа без знака. |
x |
аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в нижнем регистре). |
Данные спецификаторы типов поддерживаю так же и следующие функции: sprintf, printf, fprintf, fscanf, sscanf
Настройка представления данных
Можно указать не только тип преобразования, но и точность отображаемого результата. Например, суммы в валюте отображаются, как правило, с точностью до двух цифр. Но после вычисления значение может иметь более высокую точность (например, если разделить 123.42 на 12, то получится 10.285). Чтобы обеспечить правильное внутреннее хранение таких значений, но при этом организовать их отображение с точностью только до двух цифр, можно между символом % и спецификатором преобразования вставить строку .2.
$sig_i = -1232244;
$usig_i = 2432535;
$fl = M_EULER; // Постоянная Эйлера
$str = "Hello? user zamt";
printf("<br>%u %b %.4f %.5s<br>", $sig_i, $usig_i, $fl, $str); // 4293735052 1001010001111000010111 Hello
Математические константы