integer filesize(string filename)
Функция filesize возвращает размер данного файла в байтах. string filetype(string filename)
Функция filetype возвращает тип данного файла в виде строки описания. Допустимыми значениями являются block, char, dir, fifo, file, link и unknown. Эта функция является интерфейсом к функции stat языка C, справочная страница (man-страница) которой будет полезна для понимания различных типов файлов, используемых данной функцией.
boolean flock(resource file, integer mode)
Функция flock (листинг 9.18) используется для временного ограничения доступа к файлу. PHP использует для блокирования свою собственную систему, которая работает на многих платформах. Однако все процессы должны использовать аналогичную систему блокировки, поэтому файл будет заблокирован для PHP-сцена-риев, но не будет закрыт для других процессов.
Аргумент file должен быть целым числом, возвращенным функцией fopen. Аргумент mode определяет, является ли ваша блокировка такой, при которой другие пользователи могут читать этот файл (LOCK_SH), не могут читать файл (LOCK_EX), или блокировка снята (LOCK_UN). Для отключения блокировок LOCK_SH и LOCK_EX добавьте LOCK_NB.
При блокировке может заблокироваться весь процесс, т.е. если файл уже заблокирован, он будет ожидать до тех пор, пока не получит блокировку для того, чтобы продолжить выполнение. Кроме того, для отключения блокировок можно использовать режимы 5 и 6. Все режимы приведены в табл. 9.3.
| Листинг 9.18. Функция flock_
<?php
$fp = fopen("/tmp/log.txt", "a"); // заблокировать
flock($fp, (LOCK_EX + LOCK_NB)); stream_context_create. //Добавить в журнал строку
fputs($fp, date("h:i A l F dS, Yn"));
// снять блокировку
flock($fp, LOCK_UN);
fclose($fp);
//Сохранить журнал
print("<pre>");
readfile("/tmp/log.txt");
print("</pre>n");
?>
resource fopen(string filename, string mode, boolean use_include_ path, resource context)
Функция fopen (листинг 9.19) открывает файл для чтения или записи. Эта функция принимает имя файла и его режим. Она возвращает целое число, которое называется дескриптором файла. Внутренне PHP использует целое число для ссылки на блок информации об открытом файле. Дескриптор файла используется другими файловыми функциями такими, как, например, fputs и fgets.
Установка значения аргумента use_include_path равным TRUE приводит к тому, что PHP будет искать указанный файл по стандартному пути include. Его использование не обязательно. В качестве четвертого аргумента можно задать содержимое потока, чтобы иметь возможность настраивать некоторые аспекты открытого потока и управлять вводом-выводом. См. описание функции stream_context_create. Обычно аргумент filename представляет собой путь к файлу. По отношению к пути к каталогу со сценарием он может быть абсолютным или относительным. Если имя файла начинается с http:// или ftp://, этот файл может быть открыт с помощью протоколов HTTP или FTP по сети Internet.
Аргумент mode определяет возможность чтения из файла, запись или добавление в файл. Режимы со знаком плюс (+) являются режимами обновления, разрешающими как чтение, так и запись. При появлении в конце строки определения режима буквы b файл считается двоичным, а это означает, что символам окончания строки не придается специальное значение. В табл. 9.4 приведены все режимы чтения и записи файла.
Протокол FTP, в отличие от HTTP, позволяет открывать файлы для записи. Загружать файлы с использованием протокола FTP можно в режиме записи. Однако такая возможность является ограниченной, поскольку она позволяет создавать удаленные файлы, но запрещает перезаписывать уже существующие. С помощью HTTP- и FTP-соединения возможно только чтение с начала и до конца файла. Использовать функцию fseek или аналогичные ей функции нельзя.
Иногда файлы на HTTP- и FTP-серверах защищены именами пользователей и паролями. Имена пользователей и пароли вводятся так же, как и в популярных Web-браузерах. После обозначения сетевого протокола и перед именем пользователя можно вставить имя пользователя, затем двоеточие и символ @. Три другие возможности для открытия файлов предоставляют функции fsockopen, gzopen и popen.
Листинг 9.19. Функция fopen
<?php
print("<h1>HTTP</h1>n"); //открыть файл с помощью протокола HTTP // указать имя пользователя и его пароль if(!($myFile =
fopen("http://leon:password@www.php.net/", "r")))
{
print(" нельзя открыть файл"); exit;
}
while(!feof($myFile))
{
// прочитать строку из файла $myLine = fgetss($myFile, 255); print("$myLine <br>n");
}
// закрыть файл
fclose($myFile);
print("<hr>n");
print("<h1>FTP</h1>n");
// открыть файл с помощью протокола FTP
if(!($myFile = fopen("ftp://php.he.net/welcome.msg", "r")))
{
print(" нельзя открыть файл"); exit;
}
while(!feof($myFile))
{
// прочитать строку из файла $myLine = fgetss($myFile, 255); print("$myLine <br>n");
}
// закрыть файл
fclose($myFile);
print("<hr>n");
print("<h1>Local</h1>n");
// открыть локальный файл
if(!($myFile = fopen("data.txt", "r")))
{
print(" файл нельзя открыть"); exit;
}
while(!feof($myFile))
{
// прочитать строку из файла
$myLine = fgetss($myFile, 255); print("$myLine <br>n");
}
// закрыть файл fclose($myFile);
ТОП-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. Операционная система. Часть Седьмая. |