我可以在动态生成的JSON输出上使用file_get_contents()吗?

时间:2016-07-18 19:22:48

标签: php mysql json

我试图在我的网页上实施Tokenize2

从JSON源提取数据的部分代码涉及以下一行:

$obj = json_decode(file_get_contents('search_list.json'), true);

我有一个search_list.php,我从mySQL数据库中提取数据并生成JSON内容。但是,如果我将search_list.php放入file_get_contents(),它似乎无法正常工作。有办法解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:2)

file_get_contents()不执行代码。它只是一些字节,基本上是fopen(); fread(); fclose()的包装。就是这样。

您必须include您的脚本,例如

ob_start();
include('yourscript.php');
$json = ob_end_clean();

但是在这一点上,当你遇到包含/执行该脚本的所有麻烦时,你应该问问自己,强迫它生成一个JSON字符串,然后再将json字符串撕成PHP数组。 cpu资源的总浪费和绝对浪费。

你应该做些更好的事情,比如:

function whatever($output = 'json') {
       ... build data structure
       if ($output == 'json') {
         echo json_encode($data);
       } else 
         return $data;
       }
    }

它已经是PHP代码,你已经拥有了PHP数据结构中的所有数据,为什么数据的浪费步骤 - > json->数据?