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 →