如果你想在前端 HTML 中实时显示 PHP 执行命令的进度,可以使用 progress 标签来实现。progress 标签可以在页面上显示一个进度条,并在进度条上显示当前进度。以下是一个使用 p
<!DOCTYPE html>
<html>
<head>
<title>Progress Bar Example</title>
</head>
<body>
<h1>Progress Bar Example</h1>
<script>
var progress = 0;
function showProgressBar() {
// 执行命令,并将进度保存到 progress 变量中
var cmd = '<?php echo "Your PHP Command"; ?>';
var output = cmd.split('<?php')[1];
// 获取命令执行结果的输出流
var stream = new XMLHttpRequest();
stream.open('GET', '<?php echo $_SERVER['PHP_SELF']; ?>', false);
stream.onreadystatechange = function() {
if (stream.readyState == 4 && stream.status == 200) {
var data = stream.responseText;
// 将输出流转换为字符串,并显示进度条
progress = parseInt(data.split('\r\n')[progress], 10);
console.log(`Current progress: ${progress}%`);
// 清空进度条
progress = 0;
}
};
stream.send();
}
// 每隔 50 毫秒调用一次 showProgressBar 函数
setInterval(showProgressBar, 50);
</script>
<?php
// 在命令行中执行命令
$output = '<?php echo "Your PHP Command"; ?>';
// 获取命令执行结果的输出流
$stream = fopen("<?php echo $_SERVER['PHP_SELF']; ?>", "r");
$result = stream_get_contents($stream);
$data = str_replace('\r\n', '', $result);
$output = $data."\r\n\r\n".$output;
echo $output;
?>
<p>Progress: <span id="progress"></span></p>
<然后,我们使用 `progress` 变量的值作为当前进度,并在页面上显示一个进度条。每隔 50 毫秒,我们调用 `showProgressBar` 函数来更新进度条,并输出当前进度到控制台。在命令行中执行命令时,我们将命令的执行结果输出到控制台中。最后,在 HTML 中,我们使用 `progress` 标签显示实时进度。
当你运行上面的代码时,你会看到进度条不断地更新,并显示当前进度到控制台。注意,由于 `progress` 标签是在页面上动态显示进度的,因此你可能需要添加错误处理代码来处理命令执行过程中的错误。