【发布时间】:2014-11-24 14:32:22
【问题描述】:
字符串是:1y1m1w1d1s(一种简单的时间格式!),结果应该是:1years1months1weeks1days1seconds。
我试过str_replace是这样的:
$result = str_replace(array('s', 'h', 'd', 'w', 'm', 'y'), array('seconds', 'hours', 'days', 'weeks', 'months', 'years'), '1y1m1w1d1s');
但结果是:1years1months1weeks1dayearss1secondayearsss,如您所见,d 被替换了两次,第一次在 1d 然后在第二次ds。
如何将替换仅限于第一次出现?以某种方式支持数组作为针。
【问题讨论】:
-
你可以像 php.net 所说的那样给出计数 1 php.net/manual/en/function.str-replace.php 你可以用 count 来表示执行的更改次数(这是一个示例)
-
@MarcoMura:你的意思是:
$b = 1; $result = str_replace(array('s', 'h', 'd', 'w', 'm', 'y'), array('seconds', 'hours', 'days', 'weeks', 'months', 'years'), '1y1m1w1d1s', $b);?它返回相同的结果。 (注意最后一个参数应该通过引用发送)
标签: php replace preg-replace str-replace