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で呼び出しているソースの末尾「?>」を削除し、解決。