boolean fpassthru(resource file)
Функция fpassthru (листинг 9.20) распечатывает содержимое файла в браузере. Данные отсылаются из текущего файла, начиная с текущей позиции и до конца файла, поэтому можно прочитать несколько строк и вывести остальные строки. После отправки файл закрывается. При возникновении ошибки функция fpassthru возвращает значение FALSE. Функция gzpassthru предназначена для выполнения аналогичной операции для сжатых файлов. Для функции readfile предварительно открывать файл не требуется.
Листинг 9.20. Функция fpassthru
<?php /*
** получить Web-страницу и изменить на ней титульный тег
*/
// открыть файл с использованием http- протокола if(!($myFile = fopen("http://www.php.net/", "r"))) {
print(" нельзя открыть файл"); exit;
}
$KeepSearching = TRUE;
while(!feof($myFile) AND $KeepSearching)
{
// прочитать строку из файла $myLine = fgets($myFile, 1024);
// поиск тега тела if(eregi("<body", $myLine))
{
// после тега тела // титульный тег найти невозможно $KeepSearching = FALSE;
}
//попробовать добавить текст после титульного тега $myLine = eregi_replace("<title>",
"<title>(fpassthru example)", $myLine); // отправить строку в браузер print("$myLine");
}
// отправить остаток файла в браузер fpassthru($myFile);
?>
fprintf(resource file, string format, ...)
Функция fprintf аналогична функции printf, за исключением того, что она отправляет вывод на файл. Описание функции printf см. в главе 8, "Браузер ввода-вывода".
integer fputs(resource file, string output) Функция fputs является псевдонимом функции fwrite. string fread(resource file, integer length)
Функция fread (листинг 9.21) является версией функции fgets, которая позволяет работать с двоичными файлами. Она не реагирует на символы "конец строки" и всегда возвращает количество байтов, определенных аргументом length, если до этого не будет достигнут конец файла. Эта функция необходима, если вам требуется произвести чтение из таких двоичных файлов, как файлы изображений в формате jpeg.
j Листинг 9.21. Функция fread_
<?php
/*
** Проверка файла на формат GIF89
*/
$filename = "php.gif";
$fp = fopen($filename, "r");
//получить первые 128 байтов
$data = fread($fp, 128);
// закрыть файл
fclose($fp);
// Проверка на формат GIF89 if(substr($data, 0, 5) == "GIF89")
{
print("$filename является файлом формата GIF89.n");
}
else
{
print("$filename не является файлом формата GIF89 file.n");
}
?>
array fscanf(resource file, string format, ...)
Функция fscanf (листинг 9.22) считывает строки из открытого файла и делает попытку скопировать их в переменные в соответствии с форматом, указанным в аргументе format. Если имеются только два аргумента, функция fscanf возвращает массив. В противном случае она пытается разместить значения в указанных переменных.
Аргумент format представляет собой последовательность литеральных символов и кодов для вводимой строки. Литеральные символы должны соответствовать вводимой строке. Коды задают различные типы данных, которые функция fscanf преобразует из текста в соответствующие им типы данных. Пробелы в формате соответствуют любому количеству пробелов во вводимой строке. Например, один пробел в формате может соответствовать нескольким символам табуляции при вводе. Каждый формат начинается с символа % и завершается символом, определяющим тип (табл. 9.5). Между символом % и кодом типа можно задать длину, воспользовавшись целыми числами. Длина вводимого значения должна точно соответствовать ширине.
Кроме того, между ведущим символом % и длиной можно разместить символ *, чтобы иметь возможность сканирования и удаления поля.
Язык PHP также имеет функцию sscanf для оценки строк, которая описывается в главе 12, "Кодирование и декодирование".
| Листинг 9.22. Функция fscanf_
<?php
$fp = fopen('data.txt', 'r');
while(!feof($fp))
{
$a = fscanf($fp,
"%*4d %*i %o %u %x %f %s %3c %[a-zA-Z] %n"); print_r($a); print("<br>");
}
fclose($fp);
?>
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Операционная система. Часть Седьмая.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
PHP. Операционная система. Часть Шестая. | PHP. Операционная система. Часть Восьмая. |