加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 退出之前的触发功能

发布时间:2020-12-13 17:36:47 所属栏目:PHP教程 来源:网络整理
导读:我在前端使用 DHTMLX Scheduler和后端的DHTMLX Connector作为我的无线电自动化应用程序的一部分.每次用户编辑日历时,都会对一个如下所示的文件进行AJAX调用: require_once("dhtmlxScheduler_v4/connector/scheduler_connector.php");require_once('QDRAconf
我在前端使用 DHTMLX Scheduler和后端的DHTMLX Connector作为我的无线电自动化应用程序的一部分.每次用户编辑日历时,都会对一个如下所示的文件进行AJAX调用:
require_once("dhtmlxScheduler_v4/connector/scheduler_connector.php");
require_once('QDRAconf.php');

$res = mysql_connect($QDRAconf['mysqlHost'],$QDRAconf['mysqlUser'],$QDRAconf['mysqlPass']);
mysql_select_db($QDRAconf['mysqlDb']);

// init the schedulerconnector
$conn = new SchedulerConnector($res);

// render the table
$conn->render_table("events","id","start_date,end_date,text");

这个文件是我的“垫片”,挂钩到前端.我想要运行另一个PHP脚本将更改写入我的crontab,但是需要在DHTMLX库更新数据库之后进行.麻烦的是,DHTMLX库会自动退出,只要它认为它完成:有时它可能不会超过第一个require_once(‘…’)行,所以我不能只是把require_once(‘cronwriter.php’);在脚本的最后一行.

我的解决方案是创建一个具有析构函数的类,通过最新的更改更新crontab.由于php手动states that析构函数仍然会在exit()或die()函数被调用时运行,所以我添加了一个带有析构函数的虚拟类,它运行cronwriter.php脚本:(我把它添加到文件的开头)

class ExitCatcher
{
    function __destruct()
    {
        require_once('cronwriter.php');
    }
}
//init the class
$ExitCatcher = new ExitCatcher;

由于某种原因,它不起作用.

register_shutdown_function可以提供一个快速的解决方案;但是,您可以通过检查图书馆零星过程停止的原因来节省自己一些未来的麻烦.

一个好的开始的地方可能是…

>您的浏览器的JS console for JS错误>您的JS控制台的AJAX错误的网络标签>您的服务器错误日志中的PHP错误

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读