PHP 手册
后退 |  | 前进

# popen

(PHP 3, PHP 4, PHP 5)

popen -- 打开进程文件指针

## 说明

resource popen ( string command, string mode )

打开一个指向进程的管道，该进程由派生给定的 command 命令执行而产生。

返回一个和 fopen() 所返回的相同的文件指针，只不过它是单向的（只能用于读或写）并且必须用 pclose() 来关闭。此指针可以用于 fgets()，fgetss() 和 fwrite()。

如果出错返回 `FALSE`。

> 注: 如果需要双向支持，使用 proc_open()。

例子 1. popen() 例子

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

> 注: 如果未找到要执行的命令，会返回一个合法的资源。这看上去很怪，但有道理。它允许你访问 shell 返回的任何错误信息：

> `<?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