问题标签 [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 投票
3 回答
14777 浏览

php - PHP扩展入门-开发

请推荐有关 PHP“低”级С-modules 编程接口的帮助文章或教程。

0 投票
1 回答
2302 浏览

java - jni中的回调

有什么方法可以将回调从 C 传递给 java 代码。并且调用立即返回。稍后,在完成任务后,java 代码可以调用该回调。

我有一个用于 php 的 C 扩展,它调用一个 java 商店来在其中存储一些项目。可以通过同步和异步方法从存储中检索项目(我为存储提供键列表和回调,它调用回调并返回其中的项目)。

我能够从扩展同步检索项目,但现在我不知道如何异步进行。

  • 有什么方法可以让我的 C 代码提供指向 java 以后可以调用的函数的指针?
  • 或者是否有可能我每次 C 代码要求异步检索项目时创建一个 java 线程,然后该 java 线程调用可以将项目返回给用户的 C 函数?

作为最后的手段,我可​​能必须在 C 代码中创建一个线程,并在该线程中排队可以从 java 检索的键。

或者zend中是否有任何支持允许我将任务排队以及zend可以为队列中的每个任务一个接一个调用的回调?

0 投票
1 回答
1604 浏览

java-native-interface - 无法在 Fedora 8 中使用 jni_CreateJavaVM API 创建 JVM

我创建了一个 PHP 扩展(用 C 编写)。我正在使用 JNI 进行 java 调用。

我使用 jni_CreateJavaVM 创建 JVM。这适用于:

  • IIS(窗口)
  • 阿帕奇(Windows)
  • PHP CLI (Fedora 8)

但是当我尝试从 Apache(在 Fedore 8 中)加载相同的扩展时,create jni_ CreateJavaVM 返回 JNI _ERROR。我从 PHP _RINIT _FUNCTION 调用 jni _CreateJavaVM。

我虽然可能是我的扩展无法找到 libjvm.so。所以在同样的代码中,在调用jni_CreateJavaVM之前,我尝试加载libjvm.so库,成功了。只有当我调用 jni 函数时,它才会返回 JNI_ERROR。

我使用 LD_ LOAD 函数来加载 libjvm.so。加载库后,我获得了指向 jni_CreateJavaVM 方法的指针,该方法成功。只有当我使用指针或直接 jni_CreateJavaVM 调用时,它才会返回 -1。

有没有办法找出初始化过程中出了什么问题?

平台:Fedora 8 Java:Jdk 1.5 更新 8 Php:Php 版本 5.3

这是我编写的用于初始化 JVM 的代码。

0 投票
1 回答
2308 浏览

php - 链接用 C 编写的 PHP 扩展

编辑:修改我的问题

在 C 中构建外部 PHP 模块时,如何链接共享对象?

0 投票
7 回答
70944 浏览

c - C中当前进程的内存使用情况

我需要在 C 中获取当前进程的内存使用情况。有人可以提供如何在 Linux 平台上执行此操作的代码示例吗?

我知道cat /proc/<your pid>/status获取内存使用的方法,但我不知道如何在 C 中捕获它。

顺便说一句,这是我正在修改的 PHP 扩展(当然,我是 C 新手)。如果 PHP 扩展 API 中有可用的快捷方式,那将更有帮助。

0 投票
1 回答
103 浏览

php - 编译 php4 头文件而不是 php5

我正在为 Dreamhost PS 服务器上的 PHP 编译某些扩展。我收到一个错误,发现当使用 php4 标头而不是 php5 标头时会发生这种情况。

running phpinfo 显示服务器运行 php5。但是命令行上的 php-v 给出了 php4。

如何使编译在我的服务器上使用 php5 而不是 php4?是否有某种环境变量,如果有,我该如何更改它(Linux 新手)

谢谢

0 投票
2 回答
1386 浏览

thread-safety - 安装zend core后如何摆脱这些警告?

真的很烦!

0 投票
2 回答
742 浏览

php - PHP 有哪些数据库扩展(mysqli、PDO 等)最适合企业级应用程序?

PHP 有哪些数据库扩展(mysqli、PDO 等)最适合企业级应用程序?我想到的重要特征是:

  1. 在积极维护中
  2. 大量的文档和示例。
  3. 可能是Mysql人自己认可的。
  4. 强大的
  5. 可扩展的
0 投票
1 回答
546 浏览

php - 如何导出 PHP 扩展中的所有函数?

我使用 Depends.exe 打开了 php_sqlite.dll 和 php_sockets.dll。我在两者中都只看到了一个函数:get_module

编译.dll时如何将扩展名中的所有函数导出到dll文件?AFAIK,ZEND_FUNCTION 用于在模块中声明函数。请多多指教。非常感谢!

0 投票
1 回答
453 浏览

php - 使用 memcached 的 PHP 扩展

我正在考虑编写一个使用 memcached 库的 PHP 扩展库。简单地将我的库链接到 memcache shlib 是微不足道的。

但是,如果我的(扩展库)用户已经在他/她的网站上使用 memcache,我不确定会发生什么。我的问题是:

  1. 机器上是否可以拥有(可能不同的版本)memcache?
  2. 构建扩展库时最好是静态链接还是动态链接到memcache?(为了解决版本不兼容问题 - 假设 memcache 向后兼容,否则所有赌注都关闭)

这些问题基本上退化为如何保护他们编写的扩展库,如果它依赖于可能已经在将要使用扩展库的网站上使用的第三方文件?

这个问题可能有点不合时宜,但我希望你能理解我所问的要点。