我正在为一个学校项目开发一个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()
或类似的调用来从我的根文件夹和变量中获取数据?
答案 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,有关此内容的更多信息。