integer fseek(resource file, integer offset, integer from)
Для того чтобы изменить внутренний указатель файла PHP, необходимо использовать функцию fseek (листинг 9.23). Он принимает действующий дескриптор файла, созданный функцией fopen, а также аргумент offset, смещение в байтах относительно начала файла. В случае ошибки функция fseek возвращает отрицательную единицу (-1); в противном случае - нуль. Необходимо отметить, что эта функция отличается от многих других функций. Необязательный третий аргумент изменяет интерпретацию аргумента offset.
По умолчанию, если эта функция задается как SEEK_SET, функция fseek начинает работу с начала файла. Но можно начать сканирование файла и с конца, указав SEEK_END, однако следует указать отрицательное смещение. Можно задать SEEK_CUR для задания смещения с текущей позиции. В этом случае допустимы как положительные значения смещения, так и отрицательные.
Сканирование за пределами файла не является ошибкой; однако использование функции fseek в файле, открытом с помощью функции fopen, если она использовалась с http:// или ftp://, запрещено.
Узнать, куда указывает указатель, можно с помощью функции ftell.
| Листинг 9.23. Функция fseek_
<?php
// открыть файл
if($myFile = fopen("data.txt", "r"))
{
// перейти на следующую позицию в файле с шагом 32 байта
fseek($myFile, 32);
// вывести остаток файла
fpassthru($myFile);
}
else
{
print(" файл невозможно открыть");
}
?>
array fstat(resource file)
Функция fstat принимает информацию от C-функции об открытом файле и возвращает ее в ассоциативном массиве. Элементами этого массива являются atime, blksize, blocks, ctime, dev, gid, ino, mode, mtime, nlink, rdev, size и uid. Эта функция возвращает ту же информацию, что и функции stat и lstat.
integer ftell(resource file)
Получив правильный дескриптор файла, функция ftell возвращает смещение внутреннего указателя файла PHP. Если необходимо переместить указатель файла, можно воспользоваться функцией fseek.
boolean ftruncate(resource file, integer size)
Функция ftrunctate усекает файл до заданного размера size, указанного в байтах. Она не меняет текущее положение указателя файла, даже если после усечения он окажется за пределами файла. Для восстановления правильного размещения указателя можно прибегнуть к помощи функции fseek.
integer fwrite(resource file, string data, integer length)
Функция fwrite (листинг 9.24) записывает в файл строку. Аргумент file должен быть целым числом, возвращаемым функцией fopen, fsockopen или popen. Аргумент length является необязательным и устанавливает максимальное количество записываемых байтов. При его наличии действие "чудесных" кавычек приостанавливается. Это значит, что обратные косые черты, вставленные в строки PHP для отключения кавычек, не будут интерпретироваться как управляющие символы.
| Листинг 9.24. Функция fwrite_
<?php
// открыть файл для записи $myFile = fopen("data.txt","w");
// убедиться в том, что открытие прошло успешно
if(!($myFile))
{
print("файл невозможно открыть"); exit;
}
for($index=0; $index<10; $index++)
{
// записать строку в файл fwrite($myFile, "line $indexn");
}
// закрыть файл fclose($myFile);
?>
array get_meta_tags(string filename, boolean use_include_path)
Функция get_meta_tags (листинг 9.25) открывает файл и сканирует его на наличие мета-тегов HTML. Эта функция предполагает, что это обычный HTML-файл с обычными разрывами строк. Функция возвращает массив, проиндексированный по атрибуту name возвращаемого мета-тега. Если атрибут name содержит в идентификаторе любой недопустимый символ, он замещается символами подчеркивания. Необязательный аргумент use_include_path используется для поиска файла функцией get_meta_tags в каталоге include вместо текущего каталога. Каталог include задается в каталоге php.ini и обычно используется функцией include. Подобно многим другим файловым функциям, функция get_meta_tags позволяет указывать вместо пути в локальной файловой системе URL.
j Листинг 9.25. Функция get_meta_tags_
<html> <head>
<title>get_meta_tags</title>
<meta name="description" content="Демонстрация get_meta_tags.">
<meta name="keywords" content="PHP, Основы программирования на PHP, Леон Аткинсон">
<meta name="Имя с пробелом" content="Смотрите, как изменяется имя">
</head>
<body>
<?php
$tag = get_meta_tags($_SERVER["PATH_TRANSLATED"]);
//Вывести все элементы возвращаемого массива
print("<pre>");
print_r($tag);
print("</pre>n");
?>
</body> </html>
array glob(string pattern, integer flags)
Функция glob применяет шаблон к текущему рабочему каталогу и возвращает массив соответствующих файлов. Шаблон может содержать обычные групповые символы оболочки, такие как * и ?. Флаги, передаваемые с необязательным вторым аргументом, содержат определенные аспекты соответствия шаблону. На момент написания этой книги их полная реализация не была закончена.
ТОП-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. Операционная система. Часть Девятая. |