ТОП-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

9.6. Командные оболочки
В этом разделе описываются функции, каким-либо образом взаимодействующие с командной оболочкой. Большинство из них запускает выполнение других программ, а две из них предназначены для считывания или записи значений переменных среды.
string exec(string command, array output, integer return)
Функция exec (листинг 9.94) выполняет команду, указанную в аргументе command, как если бы она была задана непосредственно в командной оболочке. Функция exec ничего не отсылает в браузер, но возвращает последнюю строку вывода, сопровождающего выполнение команды. При указании необязательного аргумента output PHP добавляет выводимые строки в аргумент output. При указании необязательного аргумента return PHP заносит в него значение, возвращаемое командой. В аргументе command крайне опасно помещать пользовательскую информацию. Пользователи могут передавать значения в виде полей, позволяющих им выполнять свои собственные команды, пользуясь вашим Web-сервером. Если необходимо выполнить команду, введенную пользователем, полученную информацию необходимо передавать через функцию escapeshellcmd. Сравните эту функцию с функциями passthru, shell_exec и system. 

j Листинг 9.94. Функция exec_
<?php
// Получить содержимое корневого каталога устройства C $lastLine = exec("ls -l /", $allOutput, $returnValue); print(" Последняя строка: $lastLine<br>n"); print("Вeсь вывод:<br>n"); foreach($allOutput as $line)
{
print("$line<br>n");
}
print("<br>n");
print(" Возвращаемое значение: $returnValue<br>n");

string getenv(string variable)
Функция getenv (листинг 9.95) возвращает значение заданной переменной среды или FALSE в случае ошибки. PHP размещает все переменные среды в массиве _ENV, поэтому эта функция полезна только в тех редких случаях, когда переменные среды изменяют свои значения во время выполнения сценария. Если необходимо изменить значения переменной среды, используется функция putenv.

j Листинг 9.95. Функция getenv
<?php
print(getenv("PATH"));
?>

string passthru(string command, integer return)
Функция passthru аналогична функциям exec и system. Функция passthru выполняет команду, указанную в аргументе command, как если бы она была задана непосредственно в командной оболочке. При указании необязательного аргумента return PHP заносит в него возвращаемое командой значение. Функция passthru возвращает весь вывод, который отправляется в браузер. Вывод отправляется в виде двоичных данных. Это очень удобно, если необходимо запустить команды оболочки, создающий двоичный файл (например, изображение).
В аргументе command крайне опасно помещать пользовательскую информацию. Пользователи могут передавать значения в виде полей, позволяющих им выполнять свои собственные команды с помощью вашего Web-сервера. Если необходимо выполнить команду, введенную пользователем, полученную информацию необходимо передавать через функцию escapeshellcmd. Сравните эту функцию с функциями exec, shell_exec и system.
integer proc_close(resource process)
Функция proc_close используется для закрытия процесса, открытого функцией proc_open. Она возвращает значение, возвращенное функцией закрытия файла низкого уровня, которое обычно равно 0, если закрытие прошло успешно, и 1, если возникла ошибка.

array proc_get_status(resource process)
Функция proc_get_status возвращает информацию о состоянии открытого процесса в виде массива. Элементы этого массива приведены в табл. 9.26.
Операционная система
boolean proc_nice(integer level)
Функция proc_nice задает приоритет текущего процесса. Если сценарий PHP выполняется под управлением суперпользователя, эта функция может только уменьшать приоритет.

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



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