Recent posts:

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

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

2013/03/26 09:30

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宣言を出力する方法もあります。


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

今回はこの辺で。

では、また…

Pocket

コメント

  • りずむ

    数日間困っていて、サーバーを変えるつもりでした。
    いろいろと試しては元に戻す作業も続いていて
    精神的にも弱っていました。
    解決できた達成感と、開放される喜びでいっぱいです。
    本当にありがとうございました。

    • t4g

      りずむ さん、コメントありがとうございます。
      私も当時この現象で悩まされたため、
      記録として残しておこうと思い記事を作成しました。
      お役に立てて何よりです。

Twitter

【更新しました】
無料のSSL証明書に対応したレンタルサーバが出始めている件 - PC雑記帳
http://zakkiweb.net/a/62/

2017/08/14 16:31

【更新しました】
Cloud At Costで立てた仮想サーバを久しぶりに確認したらすべて止まっていた - PC雑記帳
http://zakkiweb.net/a/61/

2017/07/29 22:08

【更新しました】
今後の記事掲載について - PC雑記帳
http://zakkiweb.net/a/60/

2017/06/29 22:41