PHP에서 진행률 표시줄을 구현하는 방법: 1. "출력 버퍼 제어"를 사용하여 진행률 표시줄을 직접 출력합니다. 2. ajax를 사용하여 먼저 논리 처리 주소를 요청한 다음 세션 또는 기타 저장 매체를 사용하여 저장합니다. 처리 진행 상황.
추천: "PHP Video Tutorial"
PHP에서 진행률 표시줄을 구현하는 방법은 크게 두 가지가 있습니다. 하나는 "출력 버퍼 제어"를 사용하여 직접 출력하는 것입니다. 진행률 표시줄과 다른 하나는 ajax 방법이 있습니다
이 방법은 주로 PHP의 여러 버퍼 기능을 사용합니다. 이 방법은 변경하지 않고 직접 실행할 수 있습니다.
<?php set_time_limit(0); //设置程序执行时间 ignore_user_abort(true); //设置断开连接继续执行 header('X-Accel-Buffering: no'); //关闭buffer header('Content-type: text/html;charset=utf-8'); //设置网页编码 ob_start(); //打开输出缓冲控制 echo str_repeat(' ',1024*4); //字符填充 $width = 1000; $html = '<div style="margin:100px auto; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: %upx"><div style="padding: 0; background-color: white; border: 1px solid navy; width: %upx"><div id="progress" style="padding: 0; background-color: #FFCC66; border: 0; width: 0px; text-align: center; height: 16px"></div></div><div id="msg" style="font-family: Tahoma; font-size: 9pt;">正在处理...</div><div id="percent" style="position: relative; top: -34px; text-align: center; font-weight: bold; font-size: 8pt">0%%</div></div>'; echo sprintf($html, $width+8, $width); echo ob_get_clean(); //获取当前缓冲区内容并清除当前的输出缓冲 flush(); //刷新缓冲区的内容,输出 $length = 11; for($i=0; $i<$length; $i++) { sleep(rand(1,2)); $proportion = ($i+1)/$length; if($i+1 == $length){ $msg = '同步完成'; }else{ $msg = '正在同步第' . ($i+1) . '个用户'; } $script = '<script>document.getElementById("percent").innerText="%u%%";document.getElementById("progress").style.width="%upx";document.getElementById("msg").innerText="%s";</script>'; echo sprintf($script, intval($proportion*100), intval(($i+1)/$length)*$width, $msg); echo ob_get_clean(); //获取当前缓冲区内容并清除当前的输出缓冲 flush(); //刷新缓冲区的内容,输出 }
참고: 진행률 표시줄 스타일은 약간 수정한 후 원하는 스타일로 바꿀 수 있습니다.
사용 후 시간 내에 세션을 해제하도록 주의하세요. 그렇지 않으면 세션이 잠겨 있으므로 쿼리가 계속 대기하게 됩니다. 사용 후 해제하는 것이 가장 좋습니다.
위 내용은 PHP에서 진행률 표시줄을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!