我有这样的代码:
<?php
$first = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> TEST MESSAGE';
echo ereg_replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "UPSS", $first);
?>
它不起作用。我想收到:“UPSS 测试信息”
我做错了什么?
我有这样的代码:
<?php
$first = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> TEST MESSAGE';
echo ereg_replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "UPSS", $first);
?>
它不起作用。我想收到:“UPSS 测试信息”
我做错了什么?
好的,这里有几件事:
您$first
使用'
而不是"
's 进行声明,但您正在转义双引号,这意味着您最终会得到一串<?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
. 为什么?首先,它用于正则表达式,你似乎没有使用任何一个,其次它已被弃用很长时间,第三你没有喂它正则表达式。您还使用"
's 指定了替换,这意味着您正在替换没有反斜杠的字符串,因此它找不到匹配项(请记住,这\"
与 不同"
)。如果您现在想使用正则表达式,请查看preg_replace
,但是您想str_replace
改用,请查看您的问题:
echo str_replace('<?xml version="1.0" encoding="UTF-8"?>', 'UPSS', $first);
尝试使用 str_replace()。如果你有解析内容的目的,你应该使用 XPath 库。