ТОП-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 pclose(resource file)
Функция pclose закрывает поток файла, открытый с помощью функции popen. Функ­ция возвращает целое значение, которое в свою очередь возвращает вызываемая этой функцией С-функция wait4. Описание этого значения можно найти на соответствующей справочной странице.
resource popen(string command, string mode)
Функция popen (листинг 9.32) открывает канал к исполняемой команде. С каналами можно производить операции чтения или записи, как с обычными файлами. Функция возвращает дескриптор файла, с которым могут работать такие функции, как fgets. Каналы работают только в одном направлении, а это значит, что функция popen не позволяет работать с режимами обновления. Двунаправленный канал можно открыть с помощью функции proc_open.
При открытии канала вы выполняете программу в локальной файловой системе. Как и при работе с другими функциями, выполняющими команды, необходимо принимать во внимание высокую стоимость запуска процесса и угрозу системе безопасности, которую несет в себе информация вводимая пользователем, которая может заключаться в аргументе command. Поэтому при передаче команде информации, введенной пользователем, эту информацию сначала необходимо обработать с помощью функции escapeshellcmd. 
j Листинг 9.32. Функция popen_
<?php /*
** просмотр зарегистрированных пользователей
*/
$myPipe = popen('who', 'r'); while(!feof($myPipe))
{
print(nl2br(fread($myPipe, 1024)));
}
pclose($myPipe);
?>

string readdir(integer directory_handle)
Функция readdir возвращает имя следующего файла для дескриптора каталога, созданного функцией opendir, или значение FALSE, если таких записей больше не осталось.
Обязательно помните, что . и .. всегда имеются и будут возвращены. Пример использования этой функции можно найти в примере использования функции closedir.
integer readfile(string filename, boolean use_include_path)
Функция readfile считывает указанный файл и отсылает его непосредственно в браузер (листинг 9.33), возвращая количество байтов в файле. В случае возникновения ошибки возвращается значение FALSE. Если имя начинается с http:// или ftp://, файл будет выбран с использованием фильтра HTTP или FTP соответственно. В противном случае будет открыт файл, принадлежащий локальной файловой системе. Если необходимо отправить файл в сжатом виде, можно воспользоваться функцией readgzfile. При считывании файла в переменную воспользуйтесь возможностями функции file_get_contents.
Если необязательный аргумент use_include_path имеет значение TRUE, язык PHP будет искать файл в стандартном каталоге include.

| Листинг 9.33. Функция readfile_
<?php
print("Здeсь есть данные <br>n"); readfileCdata.txt");
?>

string readlink(string filename)
Функция readlink (листинг 9.34) возвращает путь, на который указывает данная символическая ссылка. В случае ошибки она возвращает значение FALSE. Еще одной функцией, которая может предоставить информацию о ссылке, является функция linkinfo. 

j Листинг 9.34. Функция readlink
<?php
print(readlink("/etc/rc"));

string realpath(string path)
Функция realpath (листинг 9.35) возвращает минимальный путь, на который указывает данная символическая ссылка. При этом удаляются относительные каталоги и ненужные символы косой черты. Если такой путь не существует, функция возвращает значение FALSE.

j Листинг 9.35. Функция realpath_
<?php
//prints /etc/rc.d/rc
print(realpath('/usr/../etc/.////rc'));
?>

boolean rename(string old_name, string newname)
Функция rename (листинг 9.36) меняет имя файла, заданного аргументом old_name, на имя, указанное аргументом new_name. Новое и старое имена могут содержать абсолютный путь, который позволяет использовать функцию rename для переноса файлов.

j Листинг 9.36. Функция rename_
<?php
// Перенести файл data.txt из локального каталога // в каталог temp
rename("./data.txt", "/tmp/data.dat");
?>

require(string filename)
Функция require вынуждает анализатор PHP открыть заданный файл и выполнить его. Файл рассматривается как обычный сценарий PHP, т.е. текст отсылается прямо в браузер, если при этом не используются теги PHP. PHP обрабатывает операторы require до выполнения любого другого программного кода, но это возможно только в том случае, когда задан фиксированный путь к файлу. При использовании для задания файла переменной PHP выполнит оператор require только после того, как будет выполнен весь предшествующий код. Но в любом случае PHP выполняет оператор require только один раз. При использовании функции require внутри цикла код, вставленный оператором с функцией require, будет оставаться неизменным независимо от переменных, используемых в пути. 
Кроме того, файлы можно задавать с указанием URL, начинающихся с префикса http:// или ftp://. PHP будет выбирать файл через указанный протокол и выполнять его так же, как если бы он был в локальной файловой системе. Сравните эту функцию с функцией include.

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



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