替換字串中第N次出現的字符,不用正規表示式

WBOY
發布: 2016-07-25 09:02:32
原創
1342 人瀏覽過
比如有一个字符串:$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<=$num;$i++){
  15. if($i==$pos-1){
  16. $result_str.=$text_array[$i].$cword;
  17. }else{
  18. $result_str.=$text_array[$i].$word;}
  19. }
  20. return rtrim($result_str,$word);
  21. }
  22. $text='hello world hello pig hello cat hello dog hello small boy';
  23. $word='hello';
  24. $cword='good-bye';
  25. echo changeNstr($text,$word,$cword,3);
  26. //输出:hello world hello pig good-bye cat hello dog hello small boy
  27. ?>
复制代码


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!