Php 如何在变量中使用require()
我正在为一个学校项目开发一个JSON解析器,我在根文件夹外存储了一个JSON数据文件(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
/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);
// ...