LoginSignup
8
6

More than 5 years have passed since last update.

rss開発でドハマりしたことで身を以て知った、phpソースの末尾を「?>」で閉じない方が良い理由

Posted at

rss開発でエラー

rssを開発するにあたり、以下のエラーにぶつかることに

error on line 2 at column 6: XML declaration allowed only at the start of the document

原因特定

ソースを確認したところ、rssの先頭に空行が入ってエラーが起きている。

色々ググッて調べてみたところ、先頭の「<?xml version="1.0" encoding="UTF-8"?>」はPHPで記述した方が良いですよ等々
調べたところは全部試し尽くしたのにもかかわらず、相変わらずエラーが解消せずに途方に暮れる。
こういう時はとりあえず実装に関係する箇所を部分的に消してはリロードを地道に繰り返してみるのである。

そして、require_once 云々の行を消すとエラーが解消されることを発見。
require_onceで呼び出しているソースを見たところ、末尾を「?>」で閉じているPHPのソースだった。

このように、「?>」で閉じているPHPのソースを読み込むと何が起こるのかというと、
出力するページの意図しない箇所に不要な空行が入ったりするのである。
これが原因で、rssの出力時にエラーが起きていたのだった。

※ググると閉じちゃイケない理由がたくさんでてくる
http://itpro.nikkeibp.co.jp/article/COLUMN/20070307/264114/

解決方法

require_onceで呼び出しているソースの末尾「?>」を削除し、解決。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6