【问题标题】:Calling PHP From C从 C 调用 PHP
【发布时间】:2010-12-26 12:31:34
【问题描述】:

我正在尝试编写一个使用 PHP 作为脚本语言的应用程序。该应用程序是一个 CGI 处理程序,我希望能够从中调用 PHP 页面。

我正在寻找可以让我在 C 程序中初始化 PHP 的代码,然后将包含 php 代码的缓冲区或文件名传递给它以供解析。我想从中获取输出,并能够通过 CGI 程序中的函数运行它。

【问题讨论】:

  • 注意,我不能使用 system() 调用,因为我希望 PHP 能够访问 C 程序内部使用的变量。还有另一种语言也在使用,我需要能够在它们之间共享变量。我已经建立了桥,可以让 C 访问其他语言的变量,我只需要弄清楚如何嵌入 php。

标签: php c embed


【解决方案1】:

Sara Golemon 的书 Extending and Embedding PHP(amazon) 有一章是关于将 PHP 嵌入到 C 程序中的,您可能会感兴趣。

如果您想要预览,据我所知,例如,Google 图书上的某些页面是可用的。


这是一个简短的引用(从第 20 章开始。)

除了加载外部 脚本,正如您在上一节中看到的 章节,你的 PHP 嵌入 应用程序还可以执行更小的 任意代码的 sn-ps 使用 实现的底层函数 熟悉的用户空间eval() 命令。

【讨论】:

  • 我还没有将其中所写的内容付诸实践,但无论如何它是一本有趣的书:-)
【解决方案2】:

我会看看他们是如何实现 php 命令行二进制文件的。看来主要功能在php_cli.c

它调用php_execute_scrip 和一堆看起来很有希望的其他函数。

【讨论】:

  • 让我们看看这和apt install php-all-dev php-dev libphp-embed 将如何提供帮助。 .h 标头在这里:apt-file list php7.2-dev.so 文件在这里:apt-file list libphp7.2-embed
【解决方案3】:

试试PHPEmbed 库。它适用于 C++,而不是 C,但它可能仍然适用于您,具体取决于项目要求。

【讨论】:

  • 良好的链接。它对我不起作用,但我可以用它来查看如何编写我需要的代码。谢谢。
  • 那个链接失效了。
  • 现在可能是这个:github.com/facebookarchive/phpembed
猜你喜欢
  • 2014-09-09
  • 2012-07-14
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多