Recent posts:
PC雑記帳

PCやWebに関する便利な情報や使いこなし情報を紹介

PHP中にXML宣言を書いてエラーが発生する場合の対処法(+さくらのレンタルサーバの場合)

2020/11/29 更新

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"?>';
?>

どちらにせよ、利用しているサーバ(レンタルサーバ)等の状況に応じて使い分ければいいと思います。

今回はこの辺で。

では、また…