替换字符串中第N次出现的字符,不用正则表达式
Lepaskan: 2016-07-25 09:02:32
asal
1406 orang telah melayarinya
比如有一个字符串:$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/
-
/*
- * $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 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
- ?>
复制代码
|
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31
Topik-topik yang berkaitan
Lagi>