やったこと

webサービスを作るときに考えたことを垂れ流します

【PHP】xmlのタグの中の文字列をエスケープするよ!

xmlの中に「&」とか「<」とか「>」みたいな文字列が入っていると、simplexml_load_string()で読み込んだときにエラーしてしまいます!

そんなときはpreg_replace()で文字をエスケープして読み込んであげましょう!

下記は「< title >・・・&・・・・< /title >」みたいに書かれたタグの中を「< title >・・・& amp;・・・・< /title >」と置き換えてエスケープしています!

$content = file_get_contents('./hogehoge.xml');

//&をエスケープ
$content = preg_replace('/<title>(.+?)&(.+?)<\/title>/', '<title>>$1&amp;$2</title>', $content);

$rss = simplexml_load_string($content);

これでsimplexml_load_stringでちゃんとxmlが読めるね~!

以上!