php proc_open如何检测命令是否已完成/proc_open()至少需要3个参数



这是我的代码

$descriptorspec = array( 0 => array("pipe", "r") );
$call_mp4 = "ffmpeg command ...... ";
$openMp4 = proc_open($call_mp4, $descriptorspec , $pipe);
$isMp4stillcompressing  = proc_get_status( $openMp4 );
while ( $isMp4stillcompressing['running'] ) {
    echo '• ';
}

我的"毛病"是它没完没了;(

为什么?

我的主要目标是在转换时输出一个点或其他信息

感谢

按此顺序,变量$isMp4stillcompressing将在while循环外设置一次,并在循环内永远保持为true。每次循环运行时都需要检查:

$isMp4stillcompressing  = proc_get_status( $openMp4 );
while ( $isMp4stillcompressing['running'] ) {
    echo '• ';
    $isMp4stillcompressing  = proc_get_status( $openMp4 );
}

最新更新