在运行时在PHP7.0中加载DLL的选项?

问题描述

我正在构建用于收集数据的小型应用程序。对于数据收集,使用PHP,对于数据存储,使用Postgresql包括Postgresql,所以我可以完全控制它。用于收集的PHP由外部实体触发,我无法控制将运行代码PHP解释器。

有没有办法加载PHP_pgsql.dll?在运行时? 我知道已经有人问过它,例如herehere,而我最好的信息来源是here。如果我做对了,那我就不是系统的根了(因为dl()删除了)。

我可以将PHP添加到我的应用程序中,就像添加Postgresql一样(可以控制Postgresql,不需要让别人安装,配置,维护...),但是我的PHP文件是由外部应用程序触发的因此我无法控制使用过的PHP解释器/环境。

是否有一种方法可以从相同的PHP代码(称为systemPHP)开始,但在不同的PHP环境(myPHP环境中,我可以控制并在其中包含dll) )?

例如,如果systemPHP启动collect.PHP,则collect.PHP的伪代码将为:

if <this is myPHP> { # How to detect it?
  <execute the data collection code>
}
else {
  <Start collect.PHP in myPHP transfering all the data to it> # For example if started by apache then also headers,session information etc...
  <Send back result from myPHP via the systemPHP>
}

如何实现此PHP“隧道”?

感谢您的帮助或提示。我知道最好是root或至少拥有智能的admin,但是事实并非如此:-(

当前,我正在尝试通过外壳执行数据库任务,然后在PHP中返回响应的解决方法,但是有时它有时无法工作,我相信这样做的更好方法(更不用说速度和资源使用率了)。

解决方法

您是否考虑过使用消息传递队列系统?写入队列,然后运行已加载php_pgsql.dll的PHP脚本,该脚本将检查队列中的新消息并进行处理。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...