Php 如何在变量中使用require()

Php 如何在变量中使用require(),php,require,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 RecursiveIterato

我正在为一个学校项目开发一个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()
或类似的调用将数据从我的根文件夹中取出并放入变量?

不可能这样做<如果
false
,则code>require将返回
bool
值,如果为true,则返回内容

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

get_content.php


index.php


这是不可能的<如果
false
,则code>require
将返回
bool
值,如果为true,则返回内容

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

get_content.php


index.php


为什么您需要require而不是file\u get\u contents??如果我对根文件夹之外的文件使用
file\u get\u contents()
,则不再有效,否则我宁愿使用@andreysscherbakov,因为您不能仅使用
$var=require()
将内容存储在变量中。。。您可以在一个单独的文件中使用require,然后从另一个PHP文件中获取内容……如果您是从Web服务器运行的,那么Web服务器用户需要获得
/var/data/
的权限才能
获取文件内容。它将文件读取为PHP源代码。为什么您需要require而不是file_get_contents?如果我对根文件夹之外的文件使用
file_get_contents()
,它将不再工作,否则我宁愿使用@andreysscherbakov,因为您不能仅使用
$var=require()
将内容存储在变量中。。。您可以在一个单独的文件中使用require,然后从另一个PHP文件中获取内容……如果您是从Web服务器运行的,那么Web服务器用户需要获得
/var/data/
的权限才能
获取文件内容。它以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'; 
?>
<?php
$json = file_get_content(get_content.php);
// ...