Php 如何在CodeIgniter控制器中读取JSON文件

Php 如何在CodeIgniter控制器中读取JSON文件,php,json,codeigniter,Php,Json,Codeigniter,我无法读取codeigniter控制器中的json文件,它返回一个错误 我的代码: $curYear = date("Y"); $string = file_get_contents(base_url("assets/data/".$curYear."_cal.json")); 控制器试图使用以下命令读取json文件时返回错误消息: file_get_contents(//localhost/EBR_Labeling/assets/d

我无法读取codeigniter控制器中的json文件,它返回一个错误

我的代码:

$curYear = date("Y");
$string = file_get_contents(base_url("assets/data/".$curYear."_cal.json"));
控制器试图使用以下命令读取json文件时返回错误消息:

file_get_contents(//localhost/EBR_Labeling/assets/data/2018_cal.json):无法打开流:没有这样的文件或目录


解决了的 使用此语法:

file_get_contents("./assets/data/".$curYear."_cal.json")

请使用此代码--

<?php

$json = file_get_contents(FILE_PATH);
$obj  = json_decode($json);
echo '<pre>' . print_r($obj) . '</pre>';

?>

如果你需要其他帮助,请告诉我


谢谢

我们可以简单地将所有json存储在views文件夹中,并可以直接访问它,如下所示:-


需要注意的要点:-

<?php

$json = file_get_contents(FILE_PATH);
$obj  = json_decode($json);
echo '<pre>' . print_r($obj) . '</pre>';

?>
  • $this->load->view('countries')
    与编写
    $this->load->view('countries.php')
    这会在浏览器中加载视图,而不会将其存储在变量中。当我们希望加载另一种类型的文件时,我们可以简单地更改扩展名
  • $this->load->view('countries',$data,true)
    将第三个参数传递为true可以将视图存储在变量中。如果我们不想传递第二个参数,那么我们可以传递空字符串作为
    $this->load->view('countries','',true)

  • 您应该将错误消息包含为文本,而不是屏幕截图。它说“没有这样的文件或目录”。→ 您如何看待该错误消息和提到的位置?为什么要对路径应用
    base\u url()
    ?(顺便说一句,不再需要提及自己是新手或请求帮助。)好的,我将更新描述,为什么要将base_url应用于路径?我的资产/数据文件夹位于我的应用程序文件夹之外,我认为这是获取json文件完整路径的唯一方法检查此URL是否返回数据:是的,当我手动访问该文件时,它返回我的json文件的内容。您需要找到资产文件夹的真实(文件系统)路径。使用
    //localhost/…
    不是正确的语法(既不是路径也不是URL,在任何情况下都不应该触发http子请求)。