javascriptでテスト用のjsonデータをローカルから読み込む必要があったのですが、ajaxを使用してローカルファイルを読み込もうとすると、クロスドメインによるエラーが発生します。
参考リンク:JavaScript のクロス ドメイン (Cross-Domain) 問題の回避と諸注意
そこで、一旦phpでjsonデータを読み込んでからjavascriptに渡そうとしたのですが、今度は、
「Uncaught SyntaxError: '' string literal contains an unescaped line break」
が発生しました。
どうやら、テストデータを作成するときに、最終行に改行が入っていたみたいです。
phpのrtrim関数を使用して除去したところ、うまくいきました。
参考リンク:phpマニュアル "rtrim"
json_php2script.php
<?php
$url="data.json";//読み込むjsonファイルを指定
$json_php = file_get_contents($url);//jsonデータの読み込み
$json_php = rtrim($json_php);//rtrimで改行を除去
?>
<script>
let json = JSON.parse('<?php echo $json_php; ?>');//phpからjavascriptへjsonを渡す
</script>