&
в XML стартира обект. Тъй като не сте дефинирали обект &WhateverIsAfterThat
се извежда грешка. Трябва да го избягате с &
.
$string = str_replace('&', '&', $string);
Как да избягам от амперсандите в XML
За да избегнете другите запазени знаци:
function xmlEscape($string) {
return str_replace(array('&', '<', '>', '\'', '"'), array('&', '<', '>', ''', '"'), $string);
}