是否有可能编写一些C或C++代码并编译为二进制文件,然后使用这些二进制文件与PHP?是否也可以使用C和C++编写php库?
如果是这样,请告诉我该怎么办?
PHP是模块化设计 - 它由"引擎"和许多扩展组成,其中一些是必不可少的(例如"标准"扩展),有些是可选的.它们可以动态编译或加载(通过php.ini设置或dl()
函数).
如果您愿意学习API,可以使用C/C++轻松编写自己的PHP扩展.从有关如何"破解Zend引擎"的文档开始.
您可能需要查看SWIG,这是一个包装库的通用工具,以便可以从各种语言调用它们.SWIG支持PHP,Perl和Lua(我个人使用的目标)也是如此.引自SWIG网站的功能列表:
SWIG目前为18种不同的目标语言生成包装代码:
Allegro CL
C#
CFFI
CLISP
鸡
诡计
Java的
LUA
Modula-3语言
的MzScheme
OCAML
八度
Perl的
PHP
蟒蛇
[R
红宝石
TCL
UFFI
除此之外,解析树可以导出为XML和Lisp s表达式.Pike模块也可以进行实验工作.
它的一些功能依赖于每种语言包装器生成器中的后端支持,但通常它提供了易于使用的包装器,用于将所有普通数据值类型传入和传出函数.在目标语言具有概念的情况下,它通常也可以映射对象模型.
您可以使用system()函数在PHP中使用C++编译的代码,并通过操作系统调用您的程序(就像在命令行上一样).