string fgetss(resource file, integer length, string ignore)
Функция fgetss (листинг 9.13) во всех отношениях идентична функции fgets за исключением того, что она делает попытку отсечь HTML- или PHP-код в возвращаемой строке. Необязательный аргумент ignore определяет теги, которые могут быть пропущены функцией без изменений. Заметим, что игнорировать теги можно только в открывающихся формах. Другими функциями, предназначенными для чтения из файла, являются fgetc, fgetcsv, fgetss, fread и gzgetc. Если необходимо сохранить HTML-код, но заблокировать его интерпретацию, можно воспользоваться функцией htmlentities.
| Листинг 9.13. Функция fgetss_
<?php
// открыть файл и распечатать каждую строку,
//отсекая весь HTML-код, за исключением определенных тегов
if($myFile = fopen("index.html", "r"))
{
while(!feof($myFile))
{
$myLine = fgetss($myFile, 1024, "<a>"); print($myLine);
}
fclose($myFile);
}
array file(string filename, boolean use_include_path)
Функция file возвращает весь файл в виде массива. Каждая строка файла представляет собой отдельный элемент массива, начиная с нулевого элемента. Разрывы строк включены в элементы массива. Необязательный аргумент use_include_path позволяет производить поиск файла в стандартном каталоге PHP include. До появления функции file_get_contents, для того чтобы поместить все строки в одну строку, в PHP-сценариях использовалась функция implode (листинг 9.14). Функция file не является безопасной с точки зрения работы с двоичными файлами, т.е. она не подходит для работы с двоичными файлами, которые могут содержать символы NUL.
Если необходимо отправить файл непосредственно в браузер, лучше использовать функцию readfile.
j Листинг 9.14. Функция file_
<?php
// открыть файл
$myFile = file("data.txt");
//свернуть элементы массива в одну строку
$myFile = implode("", $myFile);
// распечатать весь файл
print($myFile);
?>
boolean file_exists(string filename)
Функция file_exists возвращает значение TRUE, если указанный файл существует, и значение FALSE - если не существует. Эта функция представляет собой отличный способ обхода ошибок, возникающих при работе других файловых функций. В листинге 9.15 перед отправкой в браузере проверяется существование файла. В отличие от многих других функций, работающих с файловой системой, эта функция не принимает URL. Можно проверить файлы на предмет существования с использованием функции fopen и подавления вывода сообщений об ошибках с помощью оператора @. Помните, что Web-сервер при отсутствии требуемого файла возвращает ошибку 404, и в случае использования оператора @ создается впечатление, что искомый файл существует. Может потребоваться более элегантное решение, которое анализирует возвращаемый код, приходящий от Web-сервера в этом случае.
j Листинг 9.15. Функция file exists_
<?php
$filename = "data.txt";
// если файл существует, распечатать его if(file_exists($filename))
{
readfile($filename);
}
else
{
print("'$filename' не существует");
}
?>
string file_get_contents(string filename, boolean use_include_path)
Функция file_get_contents возвращает в виде строки полное содержимое указанных файлов. Эта функция безопасна в использовании с двоичными файлами, что делает ее удобной для выполнения операции загрузки файлов изображений. Необязательный аргумент use_include_path позволит отыскать нужный файл в стандартном каталоге include. Эта функция может считывать файлы, определенные в URL. При планировании отправки файла прямо в браузер необходимо воспользоваться возможностями другой функции - readfile.
ТОП-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. Операционная система. Часть Пятая. |