我正在尝试手动从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 我得到这个错误:
答案 0 :(得分:2)
答案 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