今日は、XMLを扱ったときに遭遇したエラーについて。
エラーの全文はこちら。
Parse error: syntax error, unexpected T_STRING in [ファイル名] on line 1.
「予期しないT_STRING がある」というシンタックスエラーです。
シンタックスエラー=構文エラーということでしたが、参考にしたサンプルと見比べても、間違いはないし…何故?と少しだけ焦りました。
そもそも、xml ファイルを開いているのに、何故 PHP のエラーが発生するのかも最初は分かりませんでした。
こちらのエラーは、原因としては下記の1行目が、PHP と誤認識されるために発生するエラーとのことでした。
<?xml version="1.0" encoding="utf-8"?>
確かに、PHPって <?php ~処理~ ?>
だけでなく、省略形として <? ~処理~ ?>
とも書けましたね…。
こちらの誤認識を防ぐために、下記のように、PHPの echo
を使って1行目を記述すると、問題なく動作するとのことでした。
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
試したところ、確かに問題なく動作しました!
他にも、.htaccess に「AddType text/html .html」もしくは「php_flag short_open_tag Off」を追加するという方法もあるようでしたが、対処が簡単だったこちらの方法を採用しました。
ちなみに、今回参考にさせていただいたサイトはこちらから。
「syntax error, unexpected ‘version’・・・」 エラーの対処方法 – Project Group
https://www.projectgroup.info/tips/php/comm_0004.html
以上、XMLファイルが正常に読み込めない・開けない時の対処法でした。
思ったよりもあっさり解決できたので良かったです。
もし同じところで躓いていらっしゃる方がいましたら、参考にしていただければと思います。