好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
怎样用str_replace,使它只作用于第一个匹配项? 关闭 返回上一级  

怎样用str_replace,使它只作用于第一个匹配项?
+ 查看更多

发布日期:2018-02-24 17:50
分类:PHP
浏览次数:65
我想要这种版本的str_replace(),它只替换在$subject中出现的第一个$search。有没有一个针对这个问题的简单方案,还是我需要用不正常的方法?

回答

使用preg_replace可以做到:
function str_replace_first($from, $to, $subject)
{
    $from = '/'.preg_quote($from, '/').'/';

    return preg_replace($from, $to, $subject, 1);
}

echo str_replace_first('abc', '123', 'abcdef abcdef abcdef'); 
// outputs '123def abcdef abcdef'
关键是可选的第四个参数[Limit]。在文档中是这样描述的:
[Limit] - 每个模版在目标字符串中被替换的最大次数,默认是-1(没有限制)。
你也可以看看zombat的回答来得到更高效的方法(大约快三四倍)。
上一篇如何使用PHP检查一个数组是否为空?
PHP中最快速检查一个字符串是否是JSON格式的方法是?下一篇
下一篇PHP中最快速检查一个字符串是否是JSON格式的方法是?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号