使用PHP文件自动在服务器之间存储和发送JSON数据

时间:2016-02-16 20:48:53

标签: php json azure events server

我在一家小型创业公司担任网页设计师,我的任务是创建一个PHP程序/文件,每当新用户注册该应用程序或进行多项操作时,该程序/文件将从我们应用程序的后端服务器接收JSON数据其他事件,处理数据并将其发送到我们的CRM(Insightly)。

在设计网站时,我对PHP有相当好的理解,但我从未真正用它来处理这样的数据。我最初的想法是在Azure服务器上为每个事件设置一个.json文件,并让后端将数据写入其中一个文件。数据来自POST数据(不是来自表单),我使用php://输入来收集数据并将其写入.json文件。然后,Azure服务器将定期运行我的PHP程序以检查文件中是否有数据,如果存在则将数据发送到Insightly。

但是,我正在使用的开发人员想要收到一个新的联系人ID /项目ID /等,它会立即生成为HTTP响应。所以基本上:

  1. 后端服务器将json数据发送到.json文件或服务器上的PHP脚本
  2. PHP脚本要么立即读取.json文件,要么只将json_decodes数据转换为数组发送到Insightly
  3. 明确创建新项目/联系人/组织并将其创建的ID返回给PHP脚本
  4. PHP脚本将该ID作为对后端的HTTP响应发送回来
  5. 所以我的问题是如何让PHP“监听”.json文件以立即运行Insightly操作和/或如何在Insightly更新完成后将HTTP响应发送回后端服务器?真的,最好的方法是什么?任何建议或建议都有帮助。

2 个答案:

答案 0 :(得分:2)

如果没有太多细节,您不想使用文件来接收JSON。让服务器指向您的一个PHP脚本(即JSONhandler.php)。然后,您可以将JSON解码为对象,执行您需要执行的任何操作,然后回显响应。这是REST apis如何工作的基本示例。

$ jsonstr = $ _POST [' data-in'];
$ jsonObj = json_decode($ jsonstr);

//对数据执行某些操作

echo $ id; //其中id由您的洞察代码生成

答案 1 :(得分:1)

Azure服务上的每个PHP脚本都可以视为多个REST AP的集合。

假设您使用Azure Web Apps托管PHP脚本。您可以创建一个PHP脚本来处理所有这些操作。

我们模仿名为&#34; handler.php&#34;的PHP脚本,然后这个脚本有一个端点,如&#34; http://<you_azure_web_app_name>.azurewebsites.net/handler.php&#34;。您的后端将直接向此网址发送数据。

然后你可以像这样创建PHP脚本:

<?php
    //get post data
    $post_data = file_get_contents('php://input');
    //convert data from jsonstr to (array) stdclass object 
    $data = (array) json_decode($post_data);

    //handle $data 
    $handled_data = some_handle_operations($data);

    //post your handled data to Insightly and get the id
    $response_result = some_post_functions_depends_your_choice($handled_data);

    //handle the respone result to get the id (what you want here)
    $id = some_operations_to_get_id_from_result($response_result);

    //response to your backend
    echo $id;

要在PHP中发出HTTP请求,有几个流行的函数。