欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

替换字符串中第N次出现的字符,不用正则表达式

程序员文章站 2024-02-12 11:19:28
...
比如有一个字符串:$a='hello world hello pig hello cat hello dog hello small boy';
然后想将第3次出现的hello 改变成为good-bye,比如:
'hello world hello pig good-bye cat hello dog hello small boy';
这样的情况,我一时半会没找到PHP的内置函数,而且在要求不能使用正则表达式的情况下,就编写了这个简易的小函数,如果大家有好的内置函数推荐,欢迎留言:)
转自PHP面试题: http://phpmst.com/
  1. /*
  2. * $text是输入的文本;
  3. * $word是原来的字符串;
  4. * $cword是需要替换成为的字符串;
  5. * $pos是指$word在$text中第N次出现的位置,从1开始算起
  6. * */
  7. function changeNstr($text,$word,$cword,$pos=1){
  8. $text_array=explode($word,$text);
  9. $num=count($text_array)-1;
  10. if($pos>$num){
  11. return "the number is too big!or can not find the $word";
  12. }
  13. $result_str='';
  14. for($i=0;$i if($i==$pos-1){
  15. $result_str.=$text_array[$i].$cword;
  16. }else{
  17. $result_str.=$text_array[$i].$word;}
  18. }
  19. return rtrim($result_str,$word);
  20. }
  21. $text='hello world hello pig hello cat hello dog hello small boy';
  22. $word='hello';
  23. $cword='good-bye';
  24. echo changeNstr($text,$word,$cword,3);
  25. //输出:hello world hello pig good-bye cat hello dog hello small boy
  26. ?>
复制代码