Php 在不终止脚本的情况下输出消息

Php 在不终止脚本的情况下输出消息,php,Php,我在一个网站上工作,该网站生成用于车辆注册的PIN,我这里的问题是,当我想一次生成大量PIN,比如50000个PIN时,这将需要很长时间才能完成,我想要的是一种在我的浏览器加载到一个页面时在后台生成PIN的方法,该页面将显示一条消息,说“正在生成您的PIN”,而不是在显示消息之前等待50000个PIN生成。我正在使用PHP和MYSQL。您想要使用的是任务守护进程。然后,您只需启动一个任务并获得一个唯一的ID,然后可以在“请稍候…”页面上使用该ID来轮询结果是否可用(当然,轮询不是最干净的解决方案

我在一个网站上工作,该网站生成用于车辆注册的PIN,我这里的问题是,当我想一次生成大量PIN,比如50000个PIN时,这将需要很长时间才能完成,我想要的是一种在我的浏览器加载到一个页面时在后台生成PIN的方法,该页面将显示一条消息,说“正在生成您的PIN”,而不是在显示消息之前等待50000个PIN生成。我正在使用PHP和MYSQL。

您想要使用的是任务守护进程。然后,您只需启动一个任务并获得一个唯一的ID,然后可以在“请稍候…”页面上使用该ID来轮询结果是否可用(当然,轮询不是最干净的解决方案,而是最简单的解决方案)


似乎有一个问题;但是您仍然需要用Python编写实际任务的代码。也许也有可用的纯PHP解决方案。

您想要使用的是任务守护进程。然后,您只需启动一个任务并获得一个唯一的ID,然后可以在“请稍候…”页面上使用该ID来轮询结果是否可用(当然,轮询不是最干净的解决方案,而是最简单的解决方案)


似乎有一个问题;但是您仍然需要用Python编写实际任务的代码。也许也有可用的纯PHP解决方案。

您可以将其分为两页:一个PHP脚本用于生成PIN,另一个用于向用户显示消息

这是一种向用户显示消息的方法:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="prototype.js"></script>
<script language="javascript">
function GeneratePINS(quantity)
{
    var myAjax = new Ajax.Updater('pinsAjax','generate_pins.php?quantity='+quantity,
    {
        method : 'get',
    }) ;
}

}
</script>

</head>

<body onload="GeneratePINS(5000);">
Generating pins...
</body>
</html>

无标题文件
函数生成器(数量)
{
var myAjax=new Ajax.Updater('pinsAjax','generate_pins.php?quantity='+quantity,
{
方法:“get”,
}) ;
}
}
正在生成PIN。。。
您的generate_pins.php应该如下所示:

<?php
$DEFAULT_VALUE = 100;
$quantity = (isset($_GET['quantity']) && is_numeric($_GET['quantity'])) ? $_GET['quantity'] : $DEFAULT_VALUE;

echo YOUR_METHOD_TO_GENERATE_PINS(quantity);
?>

Dot忘记在此处下载prototype JS:


我希望这有帮助:D

您可以将其分为两页:一个php脚本用于生成PIN,另一个用于向用户显示消息

这是一种向用户显示消息的方法:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="prototype.js"></script>
<script language="javascript">
function GeneratePINS(quantity)
{
    var myAjax = new Ajax.Updater('pinsAjax','generate_pins.php?quantity='+quantity,
    {
        method : 'get',
    }) ;
}

}
</script>

</head>

<body onload="GeneratePINS(5000);">
Generating pins...
</body>
</html>

无标题文件
函数生成器(数量)
{
var myAjax=new Ajax.Updater('pinsAjax','generate_pins.php?quantity='+quantity,
{
方法:“get”,
}) ;
}
}
正在生成PIN。。。
您的generate_pins.php应该如下所示:

<?php
$DEFAULT_VALUE = 100;
$quantity = (isset($_GET['quantity']) && is_numeric($_GET['quantity'])) ? $_GET['quantity'] : $DEFAULT_VALUE;

echo YOUR_METHOD_TO_GENERATE_PINS(quantity);
?>

Dot忘记在此处下载prototype JS:


我希望这有帮助:我不认为网站是做这件事的正确方式。我宁愿在更专业的应用程序中执行此操作,或者可能只是在cron作业中调用的php脚本。网站可以轮询作业是否准备就绪。好的,谢谢您的回复,但是我的web托管服务器中的cron作业不是每秒钟而是每分钟运行一次。我认为网站不适合这样做。我宁愿在更专业的应用程序中执行此操作,或者可能只是在cron作业中调用的php脚本。网站可以轮询作业是否准备就绪。好的,谢谢您的回复,但是我的web托管服务器中的cron作业不是每秒钟运行,而是每分钟运行。