popen

(PHP 3, PHP 4, PHP 5)

popen -- 開啟程式檔案指標

說明

resource popen ( string command, string mode )

開啟一個指向程式的管道,該程式由派生給定的 command 指令執行而產生。

返回一個和 fopen() 所返回的相同的檔案指標,只不過它是單向的(只能用於讀或寫)並且必須用 pclose() 來關閉。此指標可以用於 fgets()fgetss()fwrite()

若果出錯返回 FALSE

注: 若果需要雙向支援,使用 proc_open()

例子 1. popen() 例子

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

注: 若果找不到要執行的指令,會返回一個合法的資源。這看上去很怪,但有道理。它容許訪問 shell 返回的任何錯誤訊息:

<?php
error_reporting
(E_ALL);

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

注: 在開啟了安全模式時,只能執行在 safe_mode_exec_dir 之內的程式。為實用起見目前不能在指向程式的路徑中包括 .. 成分。

警示

在開啟了安全模式時,指令字串會被 escapeshellcmd() 轉義。從而 echo y | echo x 就成了 echo "y | echo x"

參見 pclose()fopen()proc_open()