ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Операционная система. Часть Шестая.


28-12-2009

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);

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Операционная система. Часть Пятая. PHP. Операционная система. Часть Седьмая.