使用 WordPress AJAX 在 JSON 文件中保存数据

Saving data in a JSON file with WordPress AJAX

所以我有一个 wordpress Ajax 函数,它检索 MySQL 数据作为 JSON 并记录它。但是我不想直接在 AJAX 函数所在的页面上取回数据,而是想将数据保存到 JSON 文件中,这样我就可以将它用于更广泛的用途目的。

这是我的 AJAX 函数:

$.get(
        ajax_url,
        data,
        function(data) { // AJAX callback
            fill_json(data);
        }// End AJAX callback
    );

fill_json()是我自己写的table中回显JSON数据的函数。

下面是我的 AJAX 钩子中发生的事情:

$sql_search = $wpdb->get_results(" a complicated mysql search here ");
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        $result = json_encode($result);         
        echo $result;
    } else {
        header("Location: ".$_SERVER["HTTP_REFERER"]);
    }

在我的 Ajax 钩子的 echo $result; 下方 我尝试了以下代码,但我不知道如何查看它是否有效:

        $json_path = "/var/www/vhosts/jtc.ae/httpdocs/pre/wp/wp-content/themes/Amazing_japan_HP/new/search.json";
        file_put_contents($json_path, $result);

我的问题:
这是将数据保存到 JSON 文件的正确方法吗?我怎样才能在我的主页上获取这些数据?

附加问题:将 $result 保存到 JSON 文件会与多个用户同时使用 AJAX 冲突吗?

您所做的一切都是正确的..请确保以下步骤:

  1. 将写入权限传递到文件夹/new里面"Amazing_japan_HP" (chmod -R 666 /new)
  2. 要将数据保存在文件中,请使用 file_put_contents($file, $current);
  3. 要从文件中获取数据,请使用 $current = file_get_contents($file);

  4. 对于所有新创建的文件尝试使用 umask。它为文件提供写入内容所需的权限

umask() sets PHP's umask to mask & 0777 and returns the old umask. When PHP is being used as a server module, the umask is restored when each request is finished.