如何在PHP执行批处理文件时显示加载图像gif或消息?

时间:2011-06-09 12:42:57

标签: php image loading

我一直在网上寻找答案,但找不到。

如果长时间执行的脚本正在运行,我怎么能显示一些加载消息或gif。我测试了许多不同的方式,如javascript,因为我的脚本试图使用PLINK.exe来拖尾文件,这需要大约30秒来返回值。因为它是一行代码,我不能使用flush(),有没有其他方法可以实现这一点?

<?php
$runCommand  = "C:\wamp\www\TS\batch\plink.exe Sever -l User \"ssh User@Server 'tail -600 /serverlog/test.log'\" ";
$results=system($runCommand);
//exec($runCommand, $results); 
echo $results;
?>

3 个答案:

答案 0 :(得分:4)

我尝试过以下代码,这些代码完全符合我的要求。页面在加载php脚本时显示“loading.gif”,并在脚本完成时隐藏它。这是使用JQuery。


//$tr_arname=$_REQUEST['arname'] -> is the variable i've got from previous PHP page.

<body onload="loadingAjax('myDiv');">

<script>
var arname="<?php $tr_arname=$_REQUEST['arname']; echo "$tr_arname"; ?>";
function loadingAjax(div_id)
{
    $("#"+div_id).html('<center><img src="images/loading.gif"><br><br><font color="#006699" face="arial" size="4"><b>Loading arerror.log <br><?php echo "$tr_arname"; ?> <br>Please Wait ...</b></font></center>');
    $.ajax({
        type: "POST",
        url: "ThePHPScriptPage.php",
        data: "arname=" + arname,
        success: function(msg){
            $("#"+div_id).html(msg);
        }
    });
}
</script>

<div id="myDiv"></div>
</body>

答案 1 :(得分:2)

您可以使用AJAX从其他网页请求您的php文件。然后你的javascript显示loading.gif,直到服务器回答请求。

您可以使用jQuery:http://api.jquery.com/load/

答案 2 :(得分:0)

您不能仅使用PHP执行此操作,因为它是服务器端执行(页面/脚本在用户可以在浏览器上看到任何内容之前在服务器中呈现)

您应该将脚本放在单独的文件中,然后执行AJAX调用。

要显示加载图像,请遵循此(需要jQuery框架)

http://jquery-howto.blogspot.com/2009/04/display-loading-gif-image-while-loading.html

// SHOW YOUR LOADING GIF HERE
$('#result').load('yourscript.php', function() {
 //HIDE YOUR LODAING GIF HERE
});