我正在尝试替换文本块中的某些字符。除了字符串变量开头的那个替换外,所有替换都在起作用。
文本块包含:
[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]
,第一个标记都不会被替换。
谁能告诉我为什么以及如何解决这个问题? 感谢
答案 0 :(得分:0)
直到某人可以向我提供解释原因的方法,解决方法是将字符串放在前面,然后将其删除:
$messagebody = 'START:'.$messagebody;
做你需要做的事
$messagebody = substr($messagebody,6);
我认为它必须与字符串从位置0开始并且str_replace函数开始查看位置1的事实有关。