问题标签 [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.
php - 用于制作 PHP 扩展的 SWIG,您尝试过吗?
我有一些用 C(不是 C++)编写的小型库和包装器,我想通过扩展将它们提供给 PHP。我阅读了几篇关于编写适当的 PHP 扩展的教程,这似乎并不难,但是我不希望除了库之外维护扩展的麻烦。
我读到SWIG支持构建与 Zend PHP 5 兼容的扩展,这对我来说是完美的。但是,根据 SWIG 文档,支持似乎是测试版。
我的库很常见,作为 C 中使用的元示例:
有没有人有任何经验可以分享使用 SWIG 使库的扩展如此简单?有谁知道使用 SWIG 将 php 扩展作为构建的可选部分用 C 编写的任何免费/开源项目?
在此先感谢,我希望得到一些反馈。如果它是积极的,我会花一些时间真正了解 SWIG。如果不是,我会花时间手工制作扩展。
php - 编译 swig 界面后缺少符号
我试图为我的 linux 共享对象编译一个 php 接口,并且我已经设法使用 swig 的输出让它编译得很好,但是当我尝试加载它时,它抱怨缺少符号:
现在我看了一下zend,它似乎是一个php框架。我想我缺少一个要链接的库,但我不知道哪个库。
有其他人以前做过这个并让它工作吗?
编辑:
php - 如何查看 PHP 加载的扩展?
它必须在 phpinfo() 转储中的某个地方,但我只是不知道在哪里。它应该在“附加模块”部分下吗?别的地方?我试图弄清楚为什么某些扩展似乎没有被加载,但我什至不知道我应该在哪里寻找。
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
收到指点,感激不尽!
php - PHP中加载扩展的方法之间的差异
有什么区别?
php - Mac 上的 PHP 扩展
我写了一个 PHP 扩展,我试图让它在 Mac 的 Apache 服务器上运行。
它通过命令行运行良好,例如:
我还尝试从源代码构建 Apache,当我运行它时它运行良好(我也将它设置为使用与 Mac 的内置 Apache 相同的 PHP,所以没有区别)。
但是,当我使用默认的 Apache 加载我的扩展时,您可以使用 System Preferences->Web Sharing 或等效地使用 sbin 中的 apachectl,它说:
Mac 的 Apache 有什么奇怪的地方,或者我必须设置一些权限吗?
php - 需要将算法编程得非常快,我应该将其作为 php 扩展还是以其他方式进行?
我的大部分应用程序都是用 PHP 编写的((前端和后端)。有一部分工作太慢,我需要重写它,可能不是 PHP。什么会给我以下:
1. 最快速度
2。最快的开发
3. 易于维护。
我想在 CPP 中将这段代码重写为 PHP 扩展,但可能是我锁定了这个解决方案而错过了一些更简单/更好的解决方案?
该算法是 PorterStemmerAlgorithm,每次运行时都会处理几 MB 的数据。
php - 通过引用将变量传递到 PHP 扩展
我正在编写一个 PHP 扩展,它引用一个值并改变它。示例 PHP:
什么是正确的方法?
c++ - 构建 PHP 扩展时如何检查未损坏的 C++ 符号?
我有一个用 C++ 编写的 PHP 模块,它依赖于安装的 C++ 库(Boost Date_Time)。
目前,在我的 config.m4 文件中,我正在检查库,如下所示:
现在,这适用于我当前的环境,但我痛苦地意识到这可能会在不同版本的库或编译器上中断。
如何让 automake 理解未损坏的 C++ 符号?
编辑:
我意识到检查损坏的名称是可怕的,但是没有某种方法可以检查“nm -C”返回的符号名称(例如 boost::gregorian::bad_month 等)。
我发现了一些对 automake 命令 AC_LANG_CPLUSPLUS() 的参考,但我不确定如何使用它以及它是否适用于这里。
php - 当 php 设置为记录到 syslog 时记录 REQUEST_URI 变量
这是 php_log_err 的源代码。我想修改它以便能够记录变量_SERVER["REQUEST_URI"]
我有这个应该离解决方案不远,但我无法让它工作: