繁体   English   中英

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

[英]Using PHP file to store and send JSON data between server automatically

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

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

但是,与我一起工作的开发人员希望接收一个新的联系人ID /项目ID /等,该ID会立即由Insightly生成为HTTP响应。 所以基本上:

  1. 后端服务器将json数据发送到服务器上的.json文件或PHP脚本
  2. PHP脚本要么立即读取.json文件,要么只是json_decode将数据转换为数组以发送给Insightly
  3. Insightly创建一个新的项目/联系人/组织,并将其创建的ID返回给PHP脚本
  4. PHP脚本将该ID作为HTTP响应发送回后端

因此,我的问题是如何让PHP“监听” .json文件以立即运行Insightly操作,和/或一旦Insightly更新完成后如何将HTTP响应发送回后端服务器? 确实,解决此问题的最佳方法是什么? 任何建议或帮助。

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

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

//对数据做点什么

echo $ id; // ID由您的洞察力代码生成

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

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

我们模仿了名为“ handler.php ”的PHP脚本,然后此脚本的端点为“ http://<you_azure_web_app_name>.azurewebsites.net/handler.php ”。 您的后端将直接将数据发送到该URL。

然后,您可以像这样创建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请求,有几种流行的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM