一个关于PHP中substr_replace函数的问题

2025-03-07 08:31:59
推荐回答(1个)
回答1:

问了一大串问题才10分,
1、输出结果为“用明日的辛勤工作,换未来的百倍回报!”,为什么"明日"替换的是
"今日"两个字呢
A: echo substr_replace('',"明日",2,-30);
这句的意思是,从第二个字符'今'开始替换,直到-30,负数代表从末端开始往头数的第30个字符时“停止替换”,刚刚替换完'明日',就到-30了,整个长度是+/-36,
==========
2、但是substr_replace函数并没有明确的指明要去替换哪个。
A:这个函数功能是“替换子串”,过程是先得到子串(即和substr功能相同),再把字串用给的'明日'替换(和str_replace相同)
====
3、那么echo substr_replace("abcd","h",2)从哪里开始替换?
A:套用2的回答,先取得子串, 'abcd'从2个位置到末尾,得子串'cd',子串'cd'换成'h',并回去得结果'ah'.
===============
4、这个例子是要用逗号去替换空格,里面的start为什么是44呢
这个44是怎么算出来的而 length怎么是1呢,length不是代表返回的字符串的长度吗?
A:这段文字用的gbk编码,每个汉字2个字节。中间的空格位置从0算起是44,
length是取的子串长度,不是返回长度,取1个长度的子串就是一个空格,把空格替换成逗号