1

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

这是我的 AJAX 函数:

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

fill_json()是一个在我自己编写的表中回显 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 的多个用户冲突?

4

1 回答 1

0

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

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

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

umask() 将 PHP 的 umask 设置为 mask & 0777 并返回旧的 umask。当 PHP 被用作服务器模块时,umask 会在每个请求完成时恢复。

于 2016-03-16T05:52:49.217 回答