popen

(PHP 4, PHP 5, PHP 7, PHP 8)

popen打開進程文件指針

說明

popen(string $command, string $mode): resource

打開一個指向進程的管道,該進程由派生給定的 command 命令執(zhí)行而產(chǎn)生。

參數(shù)

command

命令。

mode

模式。

返回值

返回一個和 fopen() 所返回的相同的文件指針,只不過它是單向的(只能用于讀或?qū)懀┎⑶冶仨氂? pclose() 來關(guān)閉。此指針可以用于 fgets(),fgetss()fwrite()。 當模式為 'r',返回的文件指針等于命令的 STDOUT,當模式為 'w',返回的文件指針等于命令的 STDIN。

如果出錯返回 false。

范例

示例 #1 popen() 例子

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

如果未找到要執(zhí)行的命令,會返回一個合法的資源。這看上去很怪,但有道理。它允許訪問 shell 返回的任何錯誤信息:

示例 #2 popen() 例子

<?php
error_reporting
(E_ALL);

/* 加入重定向以得到標準錯誤輸出 stderr。 */
$handle popen('/path/to/executable 2>&1''r');
echo 
"'$handle'; " gettype($handle) . "\n";
$read fread($handle2096);
echo 
$read;
pclose($handle);
?>

注釋

注意:

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

參見

  • pclose() - 關(guān)閉進程文件指針
  • fopen() - 打開文件或者 URL
  • proc_open() - 執(zhí)行一個命令,并且打開用來輸入/輸出的文件指針。