为了账号安全,请及时绑定邮箱和手机立即绑定

使用str_reve使它只在第一次匹配时起作用?

使用str_reve使它只在第一次匹配时起作用?

PHP
子衿沉夜 2019-07-11 15:55:57
使用str_reve使它只在第一次匹配时起作用?我想要一个版本的str_replace()的第一次出现。$search在$subject..这是一个简单的解决方案,还是我需要一个笨拙的解决方案?
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

可以用PRIG替换:

function str_replace_first($from, $to, $content){
    $from = '/'.preg_quote($from, '/').'/';

    return preg_replace($from, $to, $content, 1);}echo str_replace_first('abc', '123', 'abcdef abcdef abcdef');
     // outputs '123def abcdef abcdef'

魔术在可选的第四个参数[限制]中。从文件中:

[限制]-每个主题字符串中每个模式的最大可能替换量。默认值为-1(无限制)。


查看完整回答
反对 回复 2019-07-11
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

它没有版本,但解决方案一点也不烦琐。

$pos = strpos($haystack, $needle);if ($pos !== false) {
    $newstring = substr_replace($haystack, $replace, $pos, strlen($needle));}

非常简单,并且节省了正则表达式的性能损失。


奖金:如果你想替换最活的,刚过去的发生了,就用strrpos代替strpos.


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 379 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信