«

PHP:popen()的用法

时间:2024-3-1 21:44     作者:韩俊     分类: PHP


popen

(PHP 4, PHP 5)

popen — 打开进程文件指针

说明

resource popen
( string $command
, string $mode
)

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

参数

command

命令。

mode

模式。

返回值

返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose() 来关闭。此指针可以用于 fgets(),fgetss() 和 fwrite()。 当模式为 'r',返回的文件指针等于命里的 STDOUT,当模式为 'w',返回的文件指针等于命令的 STDIN。

如果出错返回 FALSE

范例

Example #1 popen() 例子

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

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

Example #2 popen() 例子

<?php
error_reporting(E_ALL);

/* 加入重定向以得到标准错误输出 stderr。 */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

注释

Note:

如果需要双向支持,使用 proc_open()。

Note: 安全模式 启用时,可仅可用 safe_mode_exec_dir 执行文件。实际上,现在不允许在到可执行的路径中存在 .. 组件。

Warning

安全模式 启用时,命令字符串会被 escapeshellcmd() 转换。因此,echo y | echo x 会变成 echo y | echo x。

参见

pclose() - 关闭进程文件指针 fopen() - 打开文件或者 URL proc_open() - 执行一个命令,并且打开用来输入/输出的文件指针。

标签: php php教程

热门推荐