如何使用C++代码与PHP交互?

qod*_*nja 19 php c++ performance load compiled

我正在读某个地方,有时PHP根本不够快,而且编译后的代码有时会"做很重的事"

C++中的api是做什么的?

Pas*_*TIN 39

您可以功能/类添加到PHP,在C程序(你可以在C包裹C++类,如果我从一篇文章我读了前一段时间记错的话),这可能让你做一些事情做得更快-如果编程好吧:不需要解释PHP代码; 只执行机器代码,这通常更快.

为此,您必须开发PHP扩展.

互联网上没有那么多可用的资源,但这些资源可能会帮助您开始:

而且,特别是关于C++部分,这个也可能有所帮助:

如果你真的对这个主题感兴趣,并准备花一些钱,你也可以买书扩展和嵌入PHP (有些页面也可以在Google Books上预览) ; 我曾经多次看到,当对这个主题感兴趣的时候读本书(事实上​​,我前段时间买过它,这是一本有趣的读物)

顺便说一下,那本书的作者也是我链接的前四篇文章的作者;-)

  • 包裹在 PHP 扩展中的 C++ 类是否会比在 PHP 中重写它们运行得更快?这有什么好处? (2认同)

bri*_*vis 11

您实际上可以没有任何API的情况下执行已编译的应用

$output = exec('/path/to/yourapp');
Run Code Online (Sandbox Code Playgroud)

除此之外,您总是可以编写PHP扩展.这里有一个很好的指南:http://devzone.zend.com/article/1021

  • 当然如此.然而,这并不会使`exec`本来就很糟糕 - 你必须负责任地使用它(比如对路径进行硬编码).如果您担心攻击者会重写您的脚本,那么您会遇到更大的问题. (13认同)
  • PHP扩展名为+1,exec()为-1 (2认同)
  • @Lira:呃,为什么? (2认同)

Vol*_*erK 7

swig,Simplified Wrapper和Interface Generator可以帮助你将(现有的)c ++包装到php模块中.

SWIG是一个软件开发工具,它将用C和C++编写的程序与各种高级编程语言连接起来.SWIG与不同类型的语言一起使用,包括常见的脚本语言,如Perl,PHP,Python,Tcl和Ruby.