PHP中にXML宣言を書いてエラーが発生する場合の対処法(+さくらのレンタルサーバの場合)
PHP中にXML宣言を記述したらエラーを吐いたので、今後再設定するときに忘れないようPHP中にXML宣言を書いてエラーが発生する場合の対処法をメモ。
PHP中にXML宣言を書いてエラーが発生する場合の対処法(+さくらのレンタルサーバの場合)
PHPの便利なところは、HTML中にPHPの記述を加えることが出来ることですが、XMLやXHTML中に記述して.phpとすると、サーバの設定によってはエラーが発生する場合があります。
これは、PHPのショートタグと呼ばれる機能が関係していて、(設定によりますが)PHPの開始・終了を「<?php ~ ?>」ではなく「<? ~ ?>」と省略する機能がXML宣言の「<?xml ~ ?>」の「<?」と「?>」に対応してしまい、XML宣言をPHPと認識してしまうことが原因となります。
今回はこれを避ける方法をまとめておきます。
まず、ショートタグ自体を無効にする方法です。
これにはphp.iniまたは.htaccessを設定する必要があります。
当サイト(さくらのレンタルサーバを使用)の場合、php.iniを編集(使用)しています。
php.iniに設定する場合、 short_open_tag = Off を記述します。
.htaccessに設定する場合、 php_flag short_open_tag Off を記述します。
さくらのレンタルサーバの場合、「サーバコントロールパネル」にログイン後、メニューの「アプリケーションの設定」欄の「PHP設定の編集」から編集することが出来ます(テキストボックス内に先ほどの設定を記述)。
もちろんphp.iniを直接編集しても問題ないでしょうが…
これらの設定を使わず、PHPでXML宣言を出力する方法もあります。
<?php
echo '<?xml version="1.0" encoding="Shift_JIS"?>';
?>
どちらにせよ、利用しているサーバ(レンタルサーバ)等の状況に応じて使い分ければいいと思います。
今回はこの辺で。
では、また…