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


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

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

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

但是,与我合作的开发人员希望立即收到Insightly作为HTTP响应生成的新联系人ID/项目ID/等。所以基本上:

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

所以我的问题是,我怎样才能让PHP"侦听".json文件以立即运行Insightly操作和/或如何在Insightly更新完成后将HTTP响应发送回后端服务器?真的,最好的方法是什么?任何建议或建议都会有所帮助。

在不涉及太多细节的情况下,您不想使用文件来接收 JSON。让服务器指向你的一个PHP脚本(即JSONhandler.php(。然后,您可以将 JSON 解码为对象,执行需要对其执行的任何操作,然后回显响应。这是 REST API 工作原理的基本示例。

$jsonstr = $_POST["数据输入"];
$jsonObj = json_decode($jsonstr(;

对数据做点什么

回声$id; 其中 ID 由见解代码生成

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

假设你使用 Azure Web 应用来托管 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请求,有几个流行的函数。

  • 利用梨/HTTP_Request2
  • 网址方法
  • PHP 流上下文