(PHP 4, PHP 5, PHP 7, PHP 8)
popen — 打開進(jìn)程文件指針
$command
, string $mode
): resource打開一個指向進(jìn)程的管道,該進(jìn)程由派生給定的 command 命令執(zhí)行而產(chǎn)生。
command
命令。
mode
模式。
返回一個和 fopen() 所返回的相同的文件指針,只不過它是單向的(只能用于讀或?qū)懀┎⑶冶仨氂? pclose() 來關(guān)閉。此指針可以用于 fgets(),fgetss() 和 fwrite()。 當(dāng)模式為 'r',返回的文件指針等于命令的 STDOUT,當(dāng)模式為 'w',返回的文件指針等于命令的 STDIN。
如果出錯返回 false
。
示例 #1 popen() 例子
<?php
$handle = popen("/bin/ls", "r");
?>
如果未找到要執(zhí)行的命令,會返回一個合法的資源。這看上去很怪,但有道理。它允許訪問 shell 返回的任何錯誤信息:
示例 #2 popen() 例子
<?php
error_reporting(E_ALL);
/* 加入重定向以得到標(biāo)準(zhǔn)錯誤輸出 stderr。 */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>
注意:
如果需要雙向支持,使用 proc_open()。