问题标签 [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 回答
2213 浏览

php - 如何从我的扩展中将对象返回到 PHP 用户空间?

我有一个 C++ 对象,Graph它包含一个名为cattype的属性Category。我Graph在用 C++ 编写的扩展中将对象暴露给 PHP。

只要Graph's 方法返回 boolean 或 long 之类的原语,我就可以使用 ZendRETURN_*()宏(例如RETURN_TRUE();RETURN_LONG(123);。但是我怎样才能使

Graph->getCategory();

返回一个Category供 PHP 代码操作的对象?

我正在关注http://devzone.zend.com/article/4486上的教程,这是我到目前为止的图形代码:

0 投票
4 回答
38749 浏览

php - pgsql.so 未在 PHP 中加载

我的任务是创建一个访问现有 PostgreSQL 数据库的 PHP 应用程序。这是我第一次使用 Postgre,更不用说 PHP 已经安装在应该运行应用程序的 Linux 机器上。我没有设置这些东西的经验,我只是编码。

我的问题是我似乎无法让 Postgre 扩展在 PHP 中工作。我检查了 php.ini 文件,没有“extension=...”行。所以我添加了“extension=pgsql.so”。然后我检查了“extension_dir”,发现里面只有 2 个文件(ldap.so、phpcups.so),我添加了一个从另一个 Linux 机器上获取的 pgsql.so 文件。我重新启动了httpd。它不起作用。我在 phpinfo() 中找不到任何“pgsql”或“postgre”。

原谅我的菜鸟。我对Linux知之甚少。如果您能指出正确的方向,我将不胜感激。


我使用了 number5 给出的建议:

伙计,我在 RedHat 上。我使用了你给出的命令的“yum”版本,我得到了这个:

[root@perseus ~]# yum install php-pgsql 正在加载“installonlyn”插件 设置安装过程 设置存储库 无法检索镜像列表http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras错误为 [Errno 4] IOError:错误:无法为 repo 找到有效的 baseurl:extras


不幸的是,我使用的 Linux 服务器没有连接到 Internet。还有其他安装方式吗?

0 投票
3 回答
768 浏览

php - 如何使用 Vala 编程语言制作 PHP 模块?

这种名为 Vala 的新语言据说类似于 C#,据说比 C++ 或 C 更容易,它在 Linux 上使用 GCC 编译器编译成 C。

听起来很棒。现在我想用它来制作一个 PHP 扩展模块,以便可以在 Vala 中制作慢速 PHP 代码并作为函数导入 PHP。

我如何在 Vala 中做到这一点?甚至可能吗?

0 投票
3 回答
3033 浏览

php - 在 PHP 运行时重命名函数

在 PHP 5.3 中有一种方法可以重命名函数或“挂钩”函数。

rename_function()〜2004年以来,“APD”内部已被破坏。如果您尝试在 PHP 5.3 上构建它,您将收到此错误:

'struct _zend_compiler_globals' has no member named 'extended_info'

这是一个非常容易修复的错误,只需更改此行:

GC(extended_info) = 1;

CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

我修改了我的 php.ini,APD 出现在我的 phpinfo() 中。但是,当我调用rename_function()PHP 页面时没有加载并且我的/var/log/apache2/error.log.

无论如何要修复 APD 以使用现代版本的 PHP?还是有另一种重命名函数的方法? 为什么在地球上的重要功能不在 php 中!??!?!(要爱蟒蛇:)

0 投票
1 回答
1920 浏览

php - 如何从 PHP 扩展返回 C++ 对象数组

我需要让我的 PHP 扩展返回一个对象数组,但我似乎无法弄清楚如何做到这一点。

我有一个Graph用 C++ 编写的对象。Graph.getNodes()返回一个std::map<int, Node*>。这是我目前的代码:

然后

当我运行时,php -r '$g = new Graph(); $g->getNodes();'我得到输出

XX]Segmentation fault

这意味着 getNodes() 函数成功循环通过我的 2 节点列表,返回,然后是段错误。我究竟做错了什么?

0 投票
1 回答
1358 浏览

php - 使用 SWIG 创建 PHP C/C++ 扩展模块

我已经为 PHP 编写了一些 C/C++ 扩展模块,使用“老式方式”——即使用手动方式(如 Sarah Golemon 在她的书中所描述的)。

这对我来说太繁琐了,因为我很懒,想尽可能地自动化。此外,我现在已经使用 SWIG 生成 Python 扩展,并且我越来越喜欢使用它。

我正在考虑使用 SWIG 来生成我未来的 PHP 扩展。我在生产服务器上使用 PHP v5.2(及更高版本)。

我的问题是:

  1. SWIG PHP 接口是否稳定(即准备好投入生产)?
  2. 如果您对问题 1 的回答是肯定的 -是否在的生产现场使用它?
  3. 在使用 SWIG 创建 PHP 扩展模块时,我需要注意什么“陷阱”?
0 投票
1 回答
302 浏览

java - 用 java/c++ 扩展 php?

我只知道 php,我想知道您是否可以在需要时使用 c++ 或 java 扩展 php web 应用程序?我不想用 quercus 转换我的代码,因为这很容易出错。还有其他方法可以扩展它吗?

因为我读过的python可以用c++扩展它而不转换python代码并将java与jython一起使用?

0 投票
3 回答
324 浏览

php - 如何为 PHP 应用程序开发 C 扩展?

我的 PHP 应用程序有一个数字运算部分,这对 PHP 来说很慢,所以我正在考虑构建一个自定义 C 扩展,但是找不到任何好的参考开始:(

有没有关于如何做这样的事情的指南?

0 投票
1 回答
1181 浏览

php - 使用 libtidy 的 PHP 扩展编译,但不加载

我用 C++ 编写了一个使用 libtidy 的扩展,当我编译 PHP 时它在 PHP 下完美运行--with-tidy

但是,让扩展在原生 PHP 上运行会很好。当我尝试使用扩展程序时,我得到如下信息:

并且未加载扩展程序。

显然,官方的 tidy 扩展工作正常。我在系统上安装了相关的libtidy开发包,它编译+链接没有问题。我试图查看整洁扩展的代码,但它是大量的宏 - 随意复制片段感觉就像货物代码。

除了使用 链接到库之外PHP_ADD_LIBRARY_WITH_PATH(tidy, $TIDY_LIBDIR, TIDY_SHARED_LIBADD),是否有修复此错误的 PHP 扩展或 C 语句?

提前致谢!!

编辑:这是整个 config.m4 文件:

0 投票
1 回答
5737 浏览

sql-server - 调用未定义函数 mssql_connect()

我一直使用 PHP 5.2.3 版本,但现在我将 PHP 更新到 5.3.2 版本。

我的 MSSQL 有问题,我无法连接到 MSSQL 服务器。

我已经下载了 PHP 1.1 的 SQL 服务器驱动程序

文件很多,我用过php_sqlsrv_53_ts_vc9。把它放在php/ext目录下php_sqlsrv_53_ts_vc9

我已经添加extension=php_sqlsrv_53_ts_vc9.dll(在 php.ini 中),但它给出了一个错误:

在第 26 行调用 C:\webserver\www\MSSQl\db_mssql.class.php 中未定义的函数 mssql_connect()

我用过:

然后一切工作!