我正在編寫mysqldump
的包裝,並希望在PHP CLI應用程序中很好地顯示輸出。嘗試在PHP到mysqldump -v popen和沒有得到輸出
我試圖運行mysqldump -v
使用popen
,以便我可以得到詳細的輸出和顯示進度指示給用戶。但是沒有返回輸出(默認情況下,它通過stdErr
登錄到屏幕)。
我嘗試添加2>&1
的命令從stdErr
詳細輸出推到stdOut
,但仍fread
沒有得到,即使輸出通過stdErr
nolonger進入到屏幕的任何輸出。
$cmd = "mysqldump -uroot -proot -v dbname 2>&1 | mysql -uroot -proot dbname2";
$handle = popen($cmd, "r");
$buffer = "";
while ($handle && !feof($handle)){
$output = fread($handle, 100);
$buffer .= $output;
echo sprintf("Buffer: %s\n", $buffer);
}
pclose($handle);
我應該用別的東西代替popen
嗎?或者我只是錯誤地重定向輸出?
$ cmd是'mysqldump -uroot -proot -v dbname | mysql -uroot -proot dbname2' – Rick
該類仍在進行中... https://github.com/Hambrook/CLITaskRunner – Rick