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.
ТОП-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. Операционная система. Часть Двеннадцатая. |