前提・実現したいこと
JSONファイルをPHPコード上に読み込む際に下のようにファイルが読み込めないエラーが出てしまい解決に悩んでいます。
Warning: file_get_contents(sample.json): failed to open stream: No such file or directory in /var/www/html/index.php on line 55
というように「55 行目の /var/www/html/index.php にそのようなファイルまたはディレクトリはありません」と出ました。
該当のソースコード
該当箇所としては、「55行目」の箇所から$file = file_get_contents('sample.json');が関係しているまで導き出せました。
index.php
$file = file_get_contents('sample.json'); $prevention = mb_convert_encoding($file, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); $json = json_decode($prevention, true);
試したこと
まず、エラー文に「ファイルまたはディレクトリはありません」とありますが、sample.jsonはPHPコードがあるindex.phpと同フォルダ同列にあるのでsample.jsonそのものがないからというのは考えられなかったです。
次に、調べたところ「存在しないURLを参照している場合がある」とあったとのことから、httpsを付け加えると推測し
index.php
$filename = "http://sample.com/sample.json"; $file = file_get_contents($filename); $prevention = mb_convert_encoding($file, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); $json = json_decode($prevention, true);
と "http://sample.com/sample.json"を入れた$filenameをfile_get_contentsで読み込むことをしましたが、同様のエラー文が帰ってきまいした。
どなたか、解決策をお教えいただけないでしょうか?
よろしくおねがいします。
追記
回答していただいた方の通り、その後file_get_contentsの前に@をつけるとそこの機能が停止するのみで根本的な解決には至れませんでした。
そこで、原因を調べたところコードを書いていたVSCode上でsample.jsonを移動させていたのみでsample.jsonのファイルそのものを移動していませんでした。そのためsample.jsonのファイルを移動させることでエラーが解消しました。
回答くださった方、ありがとうございます。
まだ回答がついていません
会員登録して回答してみよう