php str_replace产生奇怪的结果

时间:2018-01-29 20:28:52

标签: str-replace

我正在尝试替换文本块中的某些字符。除了字符串变量开头的那个替换外,所有替换都在起作用。

文本块包含: [FIRST_NAME] [LAST_NAME],此消息是为了通知您......

变量定义为:

$fname = "John";
$lname = "Doe";

$messagebody = str_replace('[FIRST_NAME]',$fname,$messagebody);
$messagebody = str_replace('[LAST_NAME]',$lname,$messagebody);

我得到的结果是: [FIRST_NAME] Doe,此消息是为了通知您......

无论我首先放置哪个标记,或者语法如何{TAG} $$TAG[TAG],第一个标记都不会被替换。

谁能告诉我为什么以及如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分:0)

直到某人可以向我提供解释原因的方法,解决方法是将字符串放在前面,然后将其删除:

$messagebody = 'START:'.$messagebody;

做你需要做的事

$messagebody = substr($messagebody,6);

我认为它必须与字符串从位置0开始并且str_replace函数开始查看位置1的事实有关。