我有一个发送短信的PHP脚本,问题是每条短信发送前需要一些时间。在我的站点中,页面将等待此脚本运行完毕。如何向用户发送短信将被发送的消息,并恢复网站的正常运行。
答案 0 :(得分:2)
将消息放入数据库的队列中。然后在后台运行一个作为cron作业运行的脚本来处理队列。
答案 1 :(得分:2)
这里唯一的问题是浏览器认为它正在等待来自脚本的更多输出。您可以卸载到单独的进程,或使用异步Web调用,或者您可以简单地.....
<?php
register_shutdown_function('when_alls_done');
.... // render page
exit;
function when_alls_done()
{
if ($_REQUEST['send_to_phone']) {
send_sms($_REQUEST['send_to_phone'], $_REQUEST['message']);
}
}
网络服务器应该在“退出”处刷新请求并让浏览器知道响应已完成(之前PHP代码中的显式刷新将不会刷新Web服务器缓冲区,否则将导致输出用另一个块来编码的块)。
下进行。
答案 2 :(得分:0)
而是在那里发送短信然后你可以将它存储在某个地方(例如数据库)。然后,您可以构建一个额外的脚本(在PHP中或您想要的任何其他内容),轮询数据库以查找要发送和分派SMS的SMS。您可以根据您的操作系统,通过cron或计划任务每隔x秒或分钟运行一次。这样,您就可以在页面中执行耗时的任务,其任务是及时与用户进行通信。
答案 3 :(得分:0)
如果你在LAMP
答案 4 :(得分:0)
要执行此操作,您可以使用 ajax 。 在一些按钮按下只是发送一个ajax请求到模拟发送短信的PHP文件。并在屏幕上发出通知,如'发送短信!!!'并且根据ajax行动的反应,将'发送短信'改为'成功!!!'....
使用ajax你可以使用jquery .. 如果你不知道jquery评论我的视频教程...我有一些jquery的初学者视频教程....
度过愉快的一天!!!!!
答案 5 :(得分:0)
当你知道如何:
时,这很容易<?php
echo 'A sms will be sent!';
fastcgi_finish_request();
// Put all your time consuming code here!
?>