Руководство по PHP
Пред. |  | След.

# popen

(PHP 3, PHP 4, PHP 5)

popen -- Открывает файловый указатель процесса

## Описание

resource popen ( string command, string mode )

Открывает поток к процессу, выполняемую при помощи форкинга (forking) команды, заданной в command.

Возвращает файловый указатель, идентичный возвращаемому функцией fopen(), за исключением того, что он односторонний (может быть использован только для чтения или записи) и должен быть закрыт при помощи pclose(). Этот указатель может быть использован с fgets(), fgetss() и fwrite().

В случае возникновения ошибки, возвращает `FALSE`.

> Замечание: Если вы ищите двустороннюю связь, используйте proc_open().

Пример 1. Пример использования функции popen()

`<?php $handle = popen("/bin/ls", "r"); ?>`

Если команда для выполнения не может быть найдена, будет возвращён действующий ресурс. Это может выглядить странно, но имеет смысл; это даёт вам возможность получить доступ к любому сообщению об ошибке, которое вернёт оболочка:

`<?php error_reporting(E_ALL); /* Добавляем перенаправление чтобы прочитать stderr. */ $handle = popen('/path/to/spooge 2>&1', 'r'); echo "'$handle'; " . gettype($handle) . "\n"; $read = fread($handle, 2096); echo $read; pclose($handle); ?>`

> Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время, использование `..` в пути запрещено

Внимание
В случае работы в безопасном режиме, все слова, следующие за начальной командой, рассматриваются как единый аргумент. То есть `echo y | echo x` будет работать как `echo "y | echo x"`.

См. также описание функций pclose(), fopen() и proc_open().

Пред. | Начало | След.
pclose | Уровень выше | readfile