【问题标题】:Can I use a dll written in C with PHP?我可以使用用 C 语言编写的 dll 和 PHP 吗?
【发布时间】:2009-04-01 19:17:19
【问题描述】:

我们正在与这里开发的一块硬件进行交互,并允许通过网络进行访问。该设备的固件是用 C 语言编写的,其中一部分固件是大约 5000 行代码,用于解析巨大的二进制文件以获取配置数据,并编译为 .dll。

有没有什么方法可以让我从 PHP 访问一个用 C 编写的 .dll?

我敢打赌这不会,但在开始尝试在 PHP 中复制 5000 行 C 代码之前,我想我应该给这里的专家一个机会。

谢谢大家。

JH

【问题讨论】:

    标签: php c


    【解决方案1】:

    是的,您可以将其用作 php 扩展(用 C 编写),但您可能需要进行一些修改......等等

    http://devzone.zend.com/node/view/id/1021

    我认为this question与你的有关。

    【讨论】:

      【解决方案2】:

      您可能想查看SWIG,这是一种用于包装库的通用工具,以便可以从各种语言中调用它们。 SWIG 支持 PHP,Perl 和 Lua(我个人使用的目标)也支持。引用SWIG website的功能列表:

      SWIG 当前生成包装器代码 针对十八个不同的目标 语言:

      • 快板 CL
      • C#
      • CFFI
      • CLISP
      • 鬼乐
      • Java
      • 卢阿
      • Modula-3
      • Mzscheme
      • OCAML
      • 八度
      • Perl
      • PHP
      • Python
      • R
      • 红宝石
      • Tcl
      • UFFI

      除此之外,解析树 可以导出为 XML 和 Lisp s 表达式。实验工作是 也可用于 Pike 模块。

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

      【讨论】:

        【解决方案3】:

        难道你不能把你需要的DLL部分编译成一个可执行文件,然后从php中执行并利用结果吗?

        类似

        $data = `someprogram --options`
        

        然后,随心所欲地使用数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-25
          • 2017-03-26
          • 1970-01-01
          • 1970-01-01
          • 2014-12-18
          • 2021-01-29
          • 2011-12-09
          相关资源
          最近更新 更多