在线文档教程
PHP
文件系统 | File System

popen

popen

(PHP 4, PHP 5, PHP 7)

popen - 打开进程文件指针

描述

resource popen ( string $command , string $mode )

通过分叉由给定的命令打开管道到一个进程command

参数

command

命令

mode

该模式

返回值

返回与fopen()返回的文件指针相同的文件指针,但它是单向的(只能用于读取或写入),并且必须用pclose()关闭。这个指针可以和fgets(),fgetss()和fwrite()一起使用。当模式为'r'时,返回的文件指针等于命令的STDOUT,当模式为'w'时,返回的文件指针等于命令的STDIN。

如果发生错误,则返回FALSE

示例

Example #1 popen() example

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

如果无法找到要执行的命令,则返回有效的资源。这可能看起来很奇怪,但有道理;它允许你访问shell返回的任何错误信息:

Example #2 popen() example

<?php error_reporting(E_ALL /* Add redirection so we can get stderr. */ $handle = popen('/path/to/executable 2>&1', 'r' echo "'$handle'; " . gettype($handle) . "\n"; $read = fread($handle, 2096 echo $read; pclose($handle ?>

笔记

Note: If you're looking for bi-directional support (two-way), use proc_open().

注意:启用安全模式时,您只能执行safe_mode_exec_dir内的文件。出于实际的原因,目前不允许在可执行文件的路径中包含..组件。

警告

随着安全模式下启动时,命令字符串逃脱escapeshellcmd()。因此,echo y | 回声x变成echo y | echo x

另请参阅

  • pclose() - 关闭进程文件指针

  • fopen() - 打开文件或URL

  • proc_open() - 执行命令并打开input/output的文件指针

← pclose

readfile →