php 替换第一个出现的,php 只替换第一次出现的字符串_PHP教程

在php中要替换串中指定字符我们一般会一次全部替换,如str_replace函数,但有时只想替换第一次出现的,像文章的关键词替换了,这个如果有100个不可能出现100次啊,我只想限制几次了,下面我来给各位介绍实现方法。

$str='这是字符串我只替换ABC一次后面的ABC我不替换了,有没有办法实现。';

把第一个abc替换成xyz,由于要替换的字符串是固定的,很多人想到了用str_replace()函数,看看这个函数的使用是不是我们要的

str_replace( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

不小心还真以为是我们想要的呢,最后那个参数是返回替换发生的总次数,它是一个引用变量,而不是我要想要的指定它将替换几次,所以用str_replace()是不行的

preg_replace()是可以实现的,可惜用了正则,

代码如下

复制代码

$str=preg_replace('/abc/','abc',$str,1);

echo $str;

显示email为 从@前2位(含)开始向前隐藏4位

代码如下

复制代码

function show_email_2($string){

$first = strpos($string, '@');

//var_dump($first);

if($first==1){

$string = '****'.$string;

}

if($first>1 && $first<=5){

$string = substr_replace($string,'****',0,$first-1);

}

if($first>5){

$string = substr_replace($string,'****',$first-5,4);

}

var_dump($string);

return $string;

}

//show_email_2('22@163.com'); //输出-->****2@163.com

//show_email_2('22@22.com'); //输出-->****2@22.com

show_email_2('6123456@163.com'); //输出-->61****6@163.com

有没有不用正则的,嗯可以这样

$replace='xyz';

if(($position=strpos($str,$replace))!==false){

$leng=strlen($replace);

$str=substr_replace($str,'abc',$position,$leng);

}

echo $str;

如果我想替换到指定次数可参考下面方法

代码如下

复制代码

}

return rtrim($result_str,$word);

}

$text='hello world hello pig hello cat hello dog hello small boy';

$word='hello';

$cword='good-bye';

echo changeNstr($text,$word,$cword,3);

//输出:hello world hello pig good-bye cat hello dog hello small boy

?>

实例都很好理解,如果你不想深入了解我们直接使用str_replace即可实例了。

http://www.bkjia.com/PHPjc/631531.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631531.htmlTechArticle在php中要替换串中指定字符我们一般会一次全部替换,如str_replace函数,但有时只想替换第一次出现的,像文章的关键词替换了,这个如果有...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值