Функции Язык программирования PHP

system

(PHP 3, PHP 4)

system - выполняет внешнюю программу и отображает вывод.

Описание

string system (string command [, int return_var])

system() похожа на C-версию этой же функции тем, что выполняет данную команду command и выводит результат. Если предоставлена переменная в качестве второго параметра, то возвращается статус-код выполненной команды, записанный в эту переменную.

Предупреждение!

Если вы разрешаете передачу данных из пользовательского ввода в эту функцию, то вы должны использовать escapeshellarg() или escapeshellcmd(), чтобы гарантировать, что пользователь не выкинет какой-нибудь трюк с системой путём выполнения произвольных команд.

Примечание: если вы начинаете программу с использования этой функции и хотите оставить её работать в фоновом режиме, вы должны гарантировать, что вывод этой программы будет перенаправлен в файл или какой-нибудь другой поток вывода, иначе PHP зависнет, пока не закончится выполнение программы.

Вызов system() пытается также автоматически очистить буфер вывода web-сервера после каждой строчки вывода, если PHP работает как серверный модуль.

Возвращает последнюю строку командного вывода при успехе, FALSE при неудаче.

Если вам нужно выполнить команду и передать все данные из команды непосредственно обратно без интерференции, используйте passthru().

См. также exec(), passthru(), popen(), escapeshellcmd() и операцию backtick.


Назад Оглавление Вперёд
shell_exec Вверх Функции принтера

Установка переменных в Таблице Символов

Если вы хотите изменить значение, вставленное в хэш, вы обязаны сначала запросить его из хэша. Чтобы избежать этой лишней работы, вы можете предоставить pval ** функции add хэша, и он будет обновлён pval *-адресом элемента, вставленного в хэш. Если это значение равно NULL (как во всех предыдущих примерах) - этот параметр игнорируется.

hash_next_index_insert() использует примерно ту же логику, что и "$foo[] = bar;" в PHP 2.0.

Если вы конструируете массив для возвращения из функции, вы можете инициализировать этот массив, выполнив следующее:

if (array_init(return_value) == FAILURE) { failed...; }

... а затем добавляя значения вспомогательными функциями:

add_next_index_long(return_value,long_value); 
add_next_index_double(return_value,double_value); add_next_index_string(return_value,estrdup(string_value));