首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

popen

(PHP 4, PHP 5, PHP 7)

popen - 打开进程文件指针

描述

代码语言:javascript
复制
resource popen ( string $command , string $mode )

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

参数

command

命令

mode

该模式

返回值

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

如果发生错误,则返回FALSE

示例

Example #1 popen() example

代码语言:javascript
复制
<?php
$handle = popen("/bin/ls", "r");
?>

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

Example #2 popen() example

代码语言:javascript
复制
<?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 →

扫码关注腾讯云开发者

领取腾讯云代金券