问题标签 [php-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1156 浏览

php - 用于制作 PHP 扩展的 SWIG,您尝试过吗?

我有一些用 C(不是 C++)编写的小型库和包装器,我想通过扩展将它们提供给 PHP。我阅读了几篇关于编写适当的 PHP 扩展的教程,这似乎并不难,但是我不希望除了库之外维护扩展的麻烦。

我读到SWIG支持构建与 Zend PHP 5 兼容的扩展,这对我来说是完美的。但是,根据 SWIG 文档,支持似乎是测试版。

我的库很常见,作为 C 中使用的元示例:

有没有人有任何经验可以分享使用 SWIG 使库的扩展如此简单?有谁知道使用 SWIG 将 php 扩展作为构建的可选部分用 C 编写的任何免费/开源项目?

在此先感谢,我希望得到一些反馈。如果它是积极的,我会花一些时间真正了解 SWIG。如果不是,我会花时间手工制作扩展。

0 投票
2 回答
854 浏览

php - 编译 swig 界面后缺少符号

我试图为我的 linux 共享对象编译一个 php 接口,并且我已经设法使用 swig 的输出让它编译得很好,但是当我尝试加载它时,它抱怨缺少符号:

现在我看了一下zend,它似乎是一个php框架。我想我缺少一个要链接的库,但我不知道哪个库。

有其他人以前做过这个并让它工作吗?

编辑:

0 投票
10 回答
220692 浏览

php - 如何查看 PHP 加载的扩展?

它必须在 phpinfo() 转储中的某个地方,但我只是不知道在哪里。它应该在“附加模块”部分下吗?别的地方?我试图弄清楚为什么某些扩展似乎没有被加载,但我什至不知道我应该在哪里寻找。

0 投票
2 回答
10118 浏览

php - 如何开始用 C++ 编写 PHP5 扩展

我正在编写一个 PHP5 扩展,虽然我可以用 C 编写它,但使用 C++ 并利用 STL 和 Boost 会更容易。

麻烦的是,我看到的教程只处理 C,我正在寻找一个使用 C++ 的基本示例

这是我到目前为止所尝试的:

配置.m4

php_hello.h

请注意我尝试将 PHP 接口的位声明为 extern "C"

你好.cpp

....这是我的构建错误:

如果我 phpize、configure 和 make 这个,我得到以下(为了清晰起见重新格式化)

我怀疑我需要对 config.m4 做更多的工作才能创建一个有效的 makefile,但我对 GCC 工具链还很陌生。

如果有帮助,我只针对 php 5.2.6+,并且只针对 Linux(特别是 Ubuntu 8.04)。我的构建环境是使用 Ubuntu 8.10,使用 gcc 4.3.2

收到指点,感激不尽!

0 投票
1 回答
154 浏览

php - PHP中加载扩展的方法之间的差异

有什么区别?

0 投票
2 回答
6080 浏览

php - Mac 上的 PHP 扩展

我写了一个 PHP 扩展,我试图让它在 Mac 的 Apache 服务器上运行。

它通过命令行运行良好,例如:

我还尝试从源代码构建 Apache,当我运行它时它运行良好(我也将它设置为使用与 Mac 的内置 Apache 相同的 PHP,所以没有区别)。

但是,当我使用默认的 Apache 加载我的扩展时,您可以使用 System Preferences->Web Sharing 或等效地使用 sbin 中的 apachectl,它说:

Mac 的 Apache 有什么奇怪的地方,或者我必须设置一些权限吗?

0 投票
4 回答
299 浏览

php - 需要将算法编程得非常快,我应该将其作为 php 扩展还是以其他方式进行?

我的大部分应用程序都是用 PHP 编写的((前端和后端)。有一部分工作太慢,我需要重写它,可能不是 PHP。什么会给我以下:
1. 最快速度
2。最快的开发
3. 易于维护。

我想在 CPP 中将这段代码重写为 PHP 扩展,但可能是我锁定了这个解决方案而错过了一些更简单/更好的解决方案?

该算法是 PorterStemmerAlgorithm,每次运行时都会处理几 MB 的数据。

0 投票
1 回答
2029 浏览

php - 通过引用将变量传递到 PHP 扩展

我正在编写一个 PHP 扩展,它引用一个值并改变它。示例 PHP:

什么是正确的方法?

0 投票
4 回答
508 浏览

c++ - 构建 PHP 扩展时如何检查未损坏的 C++ 符号?

我有一个用 C++ 编写的 PHP 模块,它依赖于安装的 C++ 库(Boost Date_Time)。

目前,在我的 config.m4 文件中,我正在检查库,如下所示:

现在,这适用于我当前的环境,但我痛苦地意识到这可能会在不同版本的库或编译器上中断。

如何让 automake 理解未损坏的 C++ 符号?

编辑:

我意识到检查损坏的名称是可怕的,但是没有某种方法可以检查“nm -C”返回的符号名称(例如 boost::gregorian::bad_month 等)。

我发现了一些对 automake 命令 AC_LANG_CPLUSPLUS() 的参考,但我不确定如何使用它以及它是否适用于这里。

0 投票
1 回答
345 浏览

php - 当 php 设置为记录到 syslog 时记录 REQUEST_URI 变量

这是 php_log_err 的源代码。我想修改它以便能够记录变量_SERVER["REQUEST_URI"]

我有这个应该离解决方案不远,但我无法让它工作: