问题标签 [php-cpp]

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 回答
226 浏览

php - 在 PHP-CPP 从 Php::Value 中检索类名

使用 PHP-CPP 为 PHP 做一个小扩展时,我在 C++ 端收到一个包含对象的数组,我需要检索它的类名。对象 Php::Value 看起来没有任何方法。

与我在此扩展中的 HNI 所做的类似: https ://github.com/mcuadros/bson-hni/blob/master/src/encode.cpp#L86

0 投票
1 回答
323 浏览

php - 如何让我用 C++ 编写的 PHP 扩展记住全局变量?

我正在使用PHP-CPP库来开发 PHP 扩展。

当我在 C++ 中尝试以下操作时:

PHP中的以下内容:

一切都按预期工作了一段时间,但随后“数字”变量随机重置为零。此外,在 Firefox 中按 CTRL+F5,“数字”变量会再次重置为零。

如何避免“数字”重置?

0 投票
2 回答
1812 浏览

php - 找不到 php-cpp zend/php.h

我想测试 php-cpp 的可能性,但是在使用“make”时,它会通过“php.h”在我身上丢失:

我该如何解决?我在 osx10.9.3 上,如果相关,我将 xampp 用于 php 项目。php-cpp 的文档http://www.php-cpp.com/documentation/install

0 投票
1 回答
582 浏览

c++ - PHP-CPP 新扩展适用于 cli 'php' 命令,但不适用于浏览器

我正在使用 PHP-CPP 创建一个 php 扩展,其中包含一个从 mysql 解析表的函数。

扩展名.cpp

在编译时,我编辑了 MakeFile 并附加到mysql_config --cflags --libs编译器命令中以加载 mysql,因此看起来g++ -shared -o extension.so extension.o -lphpcpp mysql_config --cflags --libs编译工作正常。

我尝试通过使用扩展中定义的函数(ss_parse_table)来测试编译是否真的有效。所以我创建了一个 php 文件:

测试.php

当我运行命令“php /mnt/test/index.php”时,从 CLI 中它工作正常。该命令将输出定义的扩展函数(ss_parse_table)返回的数组,如下所示

但是当我从浏览器浏览它时 http 失败

“未收到数据”(chrome 错误)或“连接已重置”(firefox 错误)

0 投票
1 回答
297 浏览

c++ - PHP-CPP C++ 扩展找不到正则表达式

我正在为 PHP 编写 C++ 扩展,并且在我的代码中使用正则表达式。这是一个片段

这不会编译,因为我没有包含代码的所有部分(有很多。)它在这里编译得很好,没有任何错误或警告。当我尝试运行使用此 C++ 代码中的任何内容的测试 php 文件时,它只是失败并给出以下错误。

一旦我删除了引用正则表达式类的方法和代码片段,它就会运行良好(我可以离开包含,它仍然可以工作。)

我使用这些命令行进行编译:

由于正则表达式是 C++11 中标准库的一部分,我想我不必手动链接正则表达式,因为它是在运行时自动完成的,对吧?

有什么我缺少使它与 PHP 一起工作的东西吗?我没有公开任何正则表达式对象,它们只是在我的 C++ 代码中实现目标的一种方式。

0 投票
1 回答
97 浏览

php - 添加用于扩展 php 的语法,而不是使用 php-cpp 的库

我对在 php 语法中添加一些特性很感兴趣,而且对我来说很明显它与为该语言编写模块不同。我想知道这需要在 C 语言中编辑资源,该资源可在 php.net 网站上获得,并且自然是 C 编程知识。只是我想做以下事情:

而不是写:

或者在另一个方面,为每个类或函数添加属性,就像在 C# 中一样

实现这种方法的第一步是什么?

0 投票
1 回答
27649 浏览

centos - cc1plus:错误:无法识别的命令行选项“-std=c++11”

我正在尝试在 centos 6,5 上安装 php-cpp。当我运行命令 make 时,我收到错误:

我应该怎么做才能解决这个问题?我的 g++ 是:

太感谢了!

=== 更新 ====

修复了将 gcc 从 4.4 升级到 4.7

http://ask.xmodulo.com/upgrade-gcc-centos.html

0 投票
0 回答
268 浏览

php - php-cpp扩展类arrayaccess返回自引用

我在 php 中使用自定义扩展时遇到问题。我正在为自制对象扩展 Php::ArrayAccess,并且我可以像原生数组一样在 PHP 中使用我的对象。但是,即使我在 offsetGet 的实现中返回对我的对象的引用,我也无法链接运算符 []。我收到此错误:

PHP 致命错误:不能在 ... 中使用 Jq 类型的对象作为数组(myfile.php 在第 0 行)

和要执行的php代码:

谢谢你的帮助 !

0 投票
2 回答
792 浏览

php - 无法执行简单的 Hello World PHP 扩展

我正在尝试运行简单的 Hello World PHP 扩展,但是在制作和安装扩展之后,当我想运行测试脚本时,我遇到了以下问题:

我的main.cpp文件:

这是我的测试脚本:

我受到本教程的启发:http ://www.sitepoint.com/getting-started-php-extension-development-via-php-cpp/

你能帮我做这个吗?在此先感谢您的帮助。

0 投票
1 回答
1043 浏览

php - 如何在 Windows 上编译 PHP-CPP?

我正在编译PHP-CPP源代码,但在Windows 7中出现错误。但是,在Linux(对于 .so 扩展名)中它工作正常。编译器给出的错误是: collect2.exe [Error] ld returned 1 exit status

注意:我直接使用 PHP-CPP 而不是 PHP 源代码...

错误:mkdir -p shared/common 命令的语法不正确。Makefile:190: 目标“shared_directories”的配方失败 mingw32-make: *** [shared_directories] 错误 1

PHP-CPP(我正在使用)

错误图像