消息:file_get_contents(sso.json):无法打开流:没有这样的文件或目录

时间:2018-11-28 04:36:21

标签: php json

我正在尝试手动从JSON文件获取数据,而不是从URL获取数据。我使用功能 file_get_contents 。而且我得到了错误:

  

消息:file_get_contents(sso.json):无法打开流:没有这样的文件或目录

即使路径正确。这是我的结构项目:

-> kalenderkerja
   -> application
      -> controllers
         -> agendakerja
            Kalender.php
            sso.json
   -> assets
   -> ...

这是我在文件 Kalender.php

中的功能 user() 中的代码
public function user() {
    $url = 'sso.json';
    $data = file_get_contents($url);
    $characters = json_decode($data, true);

    echo $characters['name'];
}

然后我在浏览器中调用控制器 localhost / kalenderkerja / agendakerja / kalender / user 我得到这个错误: enter image description here

2 个答案:

答案 0 :(得分:2)

如果更改为

$url = __DIR__.'/sso.json';

这应该有效。 您可以从HERE

了解有关魔术常数的更多信息。

答案 1 :(得分:1)

使用...

file_get_contents(__DIR__ . '/sso.json')

问题在于,因为加载的第一个文件是/var/www/html/kalenderkerja/index.php,所以工作目录变为/var/www/html/kalenderkerja。这适用于所有包含/必需的文件。

PHP中的相对文件路径可能很棘手,因此请始终尝试使用静态前缀,例如__DIR__,即...

  

文件目录。如果在include中使用,则返回包含文件的目录

因此在/var/www/html/kalenderkerja/application/controllers/agendakerja/Kalender.php中,__DIR__将是/var/www/html/kalenderkerja/application/controllers/agendakerja