如何在变量中使用 require()
How to use require() in a variable
我正在为一个学校项目开发 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()
或类似的调用将数据从我的根文件夹中获取到变量中?
这是不可能的。 require
将 return 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,有关这方面的更多信息。
我正在为一个学校项目开发 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()
或类似的调用将数据从我的根文件夹中获取到变量中?
这是不可能的。 require
将 return 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,有关这方面的更多信息。