是否可以使用PHP的C++二进制文件

Poo*_*ria 21 php

是否有可能编写一些C或C++代码并编译为二进制文件,然后使用这些二进制文件与PHP?是否也可以使用C和C++编写php库?

如果是这样,请告诉我该怎么办?

Fer*_*yer 14

PHP是模块化设计 - 它由"引擎"和许多扩展组成,其中一些是必不可少的(例如"标准"扩展),有些是可选的.它们可以动态编译或加载(通过php.ini设置或dl()函数).

如果您愿意学习API,可以使用C/C++轻松编写自己的PHP扩展.从有关如何"破解Zend引擎"的文档开始.


RBe*_*eig 12

您可能需要查看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模块也可以进行实验工作.

它的一些功能依赖于每种语言包装器生成器中的后端支持,但通常它提供了易于使用的包装器,用于将所有普通数据值类型传入和传出函数.在目标语言具有概念的情况下,它通常也可以映射对象模型.


And*_*c ॐ 7

您可以使用system()函数在PHP中使用C++编译的代码,并通过操作系统调用您的程序(就像在命令行上一样).

  • 为什么这会得到一次投票?这是可行的,可能会解决问题!投票已被删除. (2认同)
  • 是否可以使用C和C++编写php库?是系统()调用REALLY的答案?;)) (2认同)