【问题标题】:Communication between C++ and existing PHP applicationC++ 和现有 PHP 应用程序之间的通信
【发布时间】:2014-02-04 11:37:52
【问题描述】:

我正在尝试构建一个 C++ 应用程序,该应用程序从现有 PHP 应用程序(我可以访问并可以修改)同步数据,并且还能够对其进行更改。不应该直接访问数据(即从 C++ 连接到数据库),因为已经有一定的基本代码,而且出于安全考虑。

我想要实现的目标需要单向沟通。 C++ ---> PHP 应该足够了,而且由于 Apache 服务器一直在运行,因此它也有助于保持简单。

我一直在考虑使用 cURL 并调用 PHP 脚本。那里没有问题,但我正在尝试确定最合理的数据交换方式。我熟悉 JSON (jQuery),并且发现它简单而强大。

但是,C++ 似乎没有任何处理 JSON 的标准方法,虽然确实存在某些库,但应尽量减少混乱。

问题基本上是编码和稍后解析数据。 C++ 应该能够对其发送的数据进行编码,并且应该能够理解来自 PHP 脚本的响应。

应用程序和服务器不会在同一台机器上,C++ 应用程序应该同时在 Linux 和 Windows 上运行。

关于如何让这两者交流的任何想法?

【问题讨论】:

    标签: php c++ json communication


    【解决方案1】:

    交换消息的一种好方法是同时使用 XML。 由于 php 内置了 XML 解析函数,并且使用结构的 C 数据建模可以直接转换为 XML 标记,因此这种消息传递可以作为替代方案。

    【讨论】:

    • 我不确定您所说的“使用结构的 C 数据建模可以直接转换为 XML 标记”是什么意思。更具体地说,您将如何将 XML 转换为 C 结构?
    • 例如。如果您的数据库上有一个简单的客户表。
      >customer_id >customer_name >customer_address_id (foreign_key 到另一个多地址表)
      这听起来像: > typedef struct STRUCT_CUSTOMER { int id;字符 szMyName[256]; STRUCT_CUSTOMER_ADDRESS *pstFirstAddr } STRUCT_CUSTOMER;其中客户地址是指向将由 XML 创建的未来列表的指针。客户 ID 1111 ID NAME GEORGE NAME ADDRESS_LIST ADDRESS ADDRESS ADDRESS_LIST
    • 我认为我没有正确表达自己。我的意思是:“有什么方法可以将 XML 包装到我可以重用的函数中来构造功能?”类似于:loadMyStruct(myXML, myStruct);
    • 如果你想拥有自己的可移植函数,你必须实现它。如果您不介意使用非标准库,可以查找 libxml2:[xmlsoft.org/]
    猜你喜欢
    • 2015-07-15
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多