php 只替换第一次出现的字符串
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-07 14:18:35 浏览: 评论:0
在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;
如果我想替换到指定次数可参考下面方法,代码如下:
- <?php
- /*
- * $text是输入的文本;
- * $word是原来的字符串;
- * $cword是需要替换成为的字符串;
- * $pos是指$word在$text中第N次出现的位置,从1开始算起
- * */
- function changeNstr($text,$word,$cword,$pos=1){
- $text_array=explode($word,$text);
- $num=count($text_array)-1;
- if($pos>$num){
- return "the number is too big!or can not find the $word";
- }
- $result_str='';
- for($i=0;$i<=$num;$i++){
- if($i==$pos-1){
- $result_str.=$text_array[$i].$cword;
- }else{
- $result_str.=$text_array[$i].$word;}
- }
- 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即可实例了.
Tags: php替换 字符串
- 上一篇:php页面跳转另一页面各种跳转页面代码
- 下一篇:php 获取浏览器名称版本实例程序
相关文章
- ·php换行符号替换与过滤例子(2015-12-10)
- ·php 使用 preg_replace 替换html代码的例子(2016-07-27)
- ·php替换过滤所有的空白字符与空格的例子(2016-08-25)
- ·PHP中替换键名的简易方法示例详解(2020-08-23)
- ·php中替换字符串中的空格为逗号','的方法(2021-02-09)
- ·php替换字符串中间字符为省略号的方法(2021-05-25)
- ·php 字符串编码转换程序(2013-12-03)
- ·php中文字符串截取乱码问题解决方法(2013-12-04)
- ·php生成字符串随机码实现方法(2013-12-19)
- ·PHP生成随机字符串程序代码(2014-01-06)
- ·php 字符串替换为星号或其它字符(手机号,身份证)(2014-01-11)
- ·php截断带html字符串文章内容的方法(2014-01-12)
- ·php substr()函数截取中文字符串乱码(2014-01-18)
- ·php字符串与字符串操作教程详解(2014-02-22)
- ·PHP字符串处理之学习笔记(2014-02-22)
- ·PHP判断一个字符串是否是回文字符串(2014-03-06)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)