PHP函数 替换指定出现次数的子字符串

本文介绍了一个自定义函数,用于在给定字符串中高效地替换特定子串,支持按次序指定替换位置。通过实例演示了如何使用此函数,并提供了详细解释和代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * @name str_seq_replace(($heystack,$search,$to,$seq))
 * @author tunpishuang <tunps .COM>
 * @param $heystack 目标搜索字符串
 * @param $search  关键字
 * @param $to      替换为
 * @param $seq   替换匹配关键字的次序,从0计数
 * @return string 替换后的字符串
 */
function str_seq_replace($heystack,$search,$to,$seq){
    $arrStar=array();
    $sequence=0;
    $strCompare=null;
    $arr=str_split($heystack);
    foreach($arr as $k=>$v){
        $len=strlen($search);
        while($len>0 && $k<count ($arr)){
            $strCompare.=$arr[$k++];
            $len--;
        }
        if($strCompare === $search) $arrStar[]=$k-strlen($search);
        $strCompare=null;
    }
    $replacedStr=substr_replace($heystack,$to,$arrStar[$seq],strlen($search));
    return $replacedStr;
}


例子:

str_seq_replace("fdafdsafsa胡萝卜fdsafdsafdsaf胡萝卜fdsafdsa胡萝卜fdafdsa","胡萝卜","敏感词",0);
结果:

dafdsafsa敏感词fdsafdsafdsaf胡萝卜fdsafdsa胡萝卜fdafdsa


str_seq_replace("fdafdsafsa胡萝卜fdsafdsafdsaf胡萝卜fdsafdsa胡萝卜fdafdsa","胡萝卜","敏感词",2);

fdafdsafsa胡萝卜fdsafdsafdsaf胡萝卜fdsafdsa敏感词fdafdsa


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值