Хорошо, несколько вещей здесь:
первая проблема
Вы объявляющий $first
с '
вместо "
-х, но вы вытекающее ваши двойные кавычки, а значит, вы будете в конечном итоге с литральная строка <?xml version=\"1.0\" encoding=\"UTF-8\"?> TEST MESSAGE
(с обратной косой чертой).
$first = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> TEST MESSAGE';
// ^ ^^ ^ ^ ^
// You don't need to escape " when using ' to create the string.
Вместо либо вообще
$first = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> TEST MESSAGE";
// ^ ^^ ^ ^ ^
// We escape because we've used " to create the string
или
$first = '<?xml version="1.0" encoding="UTF-8"?> TEST MESSAGE';
// ^ ^^ ^ ^ ^
// We do not escape, because we used ' to create the string, and therefore only need to escape '.
будет правильным
вторая проблема
Вы используете ereg_replace
. Зачем? Прежде всего, он используется для регулярного выражения, которое, похоже, не используется ни во что, во-вторых, оно устарело долгое время, в-третьих, вы не кормите его регулярным выражением. Вы также указываете замену на "
, что означает, что вы заменяете строку БЕЗ обратных косых черт, и поэтому не можете найти совпадение (помните, что \"
- это не то же самое, что и "
). Если вы хотите использовать регулярное выражение прямо сейчас, посмотрите на preg_replace
, однако вы хотите использовать str_replace
вместо этого, глядя на вашу проблему:
echo str_replace('<?xml version="1.0" encoding="UTF-8"?>', 'UPSS', $first);
Ereg устарел. Проверьте http://php.net/manual/en/function.ereg-replace.php (большой красный ящик :)) –
Как говорит @VladPreda, не используйте 'ereg_replace()'. Он устарел. Вместо этого используйте 'preg_replace()'. Сказав это, в этом случае похоже, что вы просто хотите заменить простую строку без каких-либо сложных выражений, поэтому я бы сказал, что 'str_replace()' лучше. В функции замены регулярных выражений вам нужно будет избежать вопросительных знаков и других символов со специальным значением в регулярном выражении. – SDC