【PHP】「PCDATA invalid Char value XX」エラーの対処法

  • 2019年9月27日
  • PHP

PHP で生成した XML で「PCDATA invalid Char value 15」というエラーが発生したのでその対処法について。
特に大きな変更を加えてはいなかったので、急に発生してちょっと心臓に悪かった…。

 

で、エラーメッセージで検索し、今回は下記の記事を参考にさせていただきました。

PHPエラー対処方法「RSSをXML取得時に不正文字が存在する場合」
https://deaimobi.com/mbnk-264/

いくつかコードがありましたが、今回は不正文字列を正規表現で削除する方法を選択しました。
こちらのコードは、CData section not finished エラーや、今回の PCDATA invalid Char value XX in エラーの場合に解決できるかも、とのことでした。
コードは下記のとおりです。

$str = preg_replace('/[\x00-\x1f]/','',$str);

実際にコードに実装したところ、パースエラーが発生しなくなりました!
ただ、上記の方法だと改行も削除されてしまうようですので、場合によっては別の方法を使うほうが良さそうです。

 

以上、PHP で発生したパースエラー「PCDATA invalid Char value XX」の対処法でした。
不正文字列だけ削除し、改行は残す方法があればまたまとめたいと思います。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG