如何在变量

时间:2018-02-09 00:32:38

标签: php require

我正在为一个学校项目开发一个JSON解析器,我有一个JSON数据文件存储在我的根文件夹(/var/www/html/之外,而JSON存储在/var/data/中)。我需要读取JSON文件的内容并使用内容。我写了下面这段代码:

// $json = file_get_contents("my_data_file.json");
$json = require "/var/data/my_data_file.json";

    $jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)),
    RecursiveIteratorIterator::SELF_FIRST);

    foreach ($jsonIterator as $key => $val) {
        if(is_array($val)) {
            echo "$key:\n";
        } else {
            echo "$key => $val\n";
        }
    }

如果我使用第一个$json = file_get_contents("my_data_file.json");它没有任何问题,但由于文件位于根文件夹之外,我使用require()来获取文件。这是我遇到麻烦的地方,因为使用require()只输出该文件中的所有内容,而不是将数据加载到变量中。有没有办法使用例如require()或类似的调用来从我的根文件夹和变量中获取数据?

1 个答案:

答案 0 :(得分:2)

不可能这样做。如果require,则bool将返回false值,如果为真,则会返回{。}}。

一种可能的解决方案是拥有两个单独的文件:

  

get_content.php

<?php
// set header to plain text so code will return as just text
header('Content-Type: text/plain');
// require the file
require 'someJsonFile.json'; 
?>
  

的index.php

<?php
$json = file_get_content(get_content.php);
// ...

我希望这有帮助!

还有另一个answer here,有关此内容的更多信息。