php字符串处理案例(即String函数)

更多参考(约100个函数):https://www.runoob.com/php/php-ref-string.html

1、nl2br:转换换行符(即

  1. $str = “这是的一个例子:Supercali\nfragul".PHPEOL."istic";
  2. echo nl2br($str);//输出:
  3. 这是的一个例子:Supercali
  4. fragul
  5. istic

2、substr_replace(string,replacement,start,length) 把字符串的一部分替换为另一个字符串

  1. $str = “这是的一个例子:Supercali\istic";
  2. echo substr_replace($str, “…", 30);
  3. //输出:
  4. 这是的一个例子:Superc
  5. 另一例子:
  6. $string = 202203";
  7. $result = substr_replace($string, “-“, 4, 0);
  8. echo $result; // 输出:2022-03
  9. 该函数的第一个参数是要操作的字符串,第二个参数是要插入的字符串,第三个参数是开始替换的位置(从0开始计数),第四个参数是要替换的长度(此处为0表示不替换长度)。

3、str_ireplace(find,replace,string,count) 替换字符串中的一些字符(不区分大小写)。

  1. $str = “这是的一个例子:Supercali\istic";
  2. echo str_replace(“例","kk",$str); //适用中文
  3. //输出:这是的一个kk子:Supercali\istic

4、chop 移除字符串右侧的字符

  1. $str = ‘这是的 一个例子:Supercaliaastic’;
  2. echo chop($str,"stic");
  3. //输出:
  4. 这是的 一个例子:Supercaliaa

5、chunk_split(string,length,end)把字符串分割为一连串更小的部分。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo chunk_split($str,3,’‘);
  3. //输出:
  4. 这是的一个例子:_Sup_erc_ali_aas_tic
  5. 把字符串打散为数组
  6. $string = ‘中国共’;
  7. var_dump(preg_split(‘//u’, $string, 0, PREG_SPLIT_NO_EMPTY));
  8. / array (size=13)
  9. 0 => string ‘中’ (length=3)
  10. 1 => string ‘国’ (length=3)
  11. 2 => string ‘共’ (length=3)
  12. /

6、str_word_count 计算字符串中的单词数

  1. $str = ‘这 的一个例子:Superca liaastic’;
  2. echo str_word_count($str);//貌似只能统计英文
  3. //输出:2

7、number_format 通过千位分组来格式化数字。

  1. echo number_format(“12345678",3,"-“,"=");
  2. //输出:12=345=678-000
  3. 小数点处理
  4. number_format(‘23.2356’,2);
  5. //输出:string(5) “23.24"
  6. 如果是补零,见下面的sprintf

8、sprintf(format,arg1,arg2,arg++) 把格式化的字符串写入一个变量中。

  1. echo sprintf(‘%.2f’,1234);
  2. //输出:1234.00

9、str_repeat(string,repeat) 把字符串重复指定的次数

  1. echo str_repeat(“我的",4);
  2. //输出:我的我的我的我的

10、str_shuffle(string) 随机地打乱字符串中的所有字符。

  1. echo str_shuffle(‘asdfgh’);//不适用于中文
  2. //输出:dhsfag

11、str_split(string,length) 把字符串分割到数组中。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. print_r(mb_str_split($str,5));//适用于中文
  3. //输出 Array ( [0] => 这是的一个 [1] => 例子:Su [2] => perca [3] => liaas [4] => tic )

12、strchr(string,search,before_search) 与strstr/stristr一样 搜索字符串在另一字符串中的第一次出现,并返回字符串的其余部分。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo strchr($str,’up’,false);//适用于中文
  3. //输出 upercaliaastic
  4. $email = name@example.com’;
  5. echo strrchr($email, a’); //输出 ample.com
  6. echo strrchr($email, ex’); //输出 e.com

13、stripos、strpos(string,find,start) 查找字符串在另一字符串中第一次出现的位置

  1. strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
  2. stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
  3. strripos() -查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
  4. $str = ‘这是的一个例子:Supercaliaastic’;
  5. echo mb_stripos($str,’例’);//适用于中文,不区分大小写
  6. echo mb_strpos($str,’例’);//适用于中文,不区分大小写
  7. //输出 5
  8. # 变量$aa的值“a_bc_”,判断最后一位是否是“_”
  9. if (strrpos(aa, '_') === strlen(aa) - 1) {
  10. // 是下划线
  11. }
  12. $string = "Hello, world!";
  13. $char = "w";
  14. if (strpos($string, $char) !== false) {
  15. echo "字符串包含字符 '$char'";
  16. } else {
  17. echo "字符串不包含字符 '$char'";
  18. }

14、strrev(string)反转字符串。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo strrev($str);//不适用于中文
  3. //输出 citsaailacrepuS

15、strtolower()转小写,strtoupper()转大写,lcfirst()首字符小写,ucwords()每个单词(空格割开),

  1. ucfirst()首字符为大写。

16、strtr(string,from,to) 转换字符串中特定的字符。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo strtr($str,’er’,’hh’);//不适用于中文
  3. //输出 这是的一个例子:Suphhcaliaastic

17、substr_replace(string,replacement,start,length) 把字符串的一部分替换为另一个字符串。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo substr_replace($str,’kppa’,25,2);//不适用于中文
  3. //输出 这是的一个例子:Skppaercaliaastic

18、mb_substr(string,start,length) 返回字符串的一部分。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo mb_substr($str,0,9);//适用于中文
  3. //输出 这是的一个例子:S
  4. # 变量$aa的值“a_bc_”,判断最后一位是否是“_”
  5. if (substr($aa, -1) === '_') {
  6. // 是下划线
  7. }

19、substr_count(string,substring,start,length)计算子串在字符串中出现的次数。

  1. $str = ‘这是的一个例子:Supercaliaastic’;
  2. echo substr_count($str,’这’);//适用于中文,区分大小写
  3. //输出 1

20、printf

  1. $num1 = 123;
  2. $num2 = 456;
  3. printf(“feng%u shi %s de",$num1,$num2);//输出格式化的字符串。
  4. echo $res = sprintf(“feng%u shi %s de",$num1,$num2);//把格式化的字符串写入一个变量中。
  5. //都是输出 feng123 shi 456 de
  6. sprintf不同,参数位于数组中,把格式化字符串写入变量中。
  7. $num1 = 123;
  8. $num2 = 456;
  9. echo $res = vsprintf(“feng%u shi %s de",array($num1,$num2))
  10. //输出 feng123 shi 456 de
  11. $num1 = 123;
  12. $num2 = 456;
  13. echo vsprintf(“%.2f%.3f",array($num1,$num2));
  14. //输出 123.00456.000
  15. printf不同,参数位于数组中,直接打印。
  16. $num1 = 123;
  17. $num2 = 456;
  18. vprintf(“feng%u shi %s de",array($num1,$num2));
  19. //输出 feng123 shi 456 de
  20. $str1 = ‘nameh’;
  21. echo vsprintf(“[%s]",array($str1))."<br>";
  22. echo vsprintf(“[%8s]",array($str1))."<br>";
  23. echo vsprintf(“[%-8s]",array($str1))."<br>";
  24. echo vsprintf(“[%08s]",array($str1))."<br>";
  25. echo vsprintf(“[%’8s]",array($str1))."<br>";
  26. //输出
  27. [nameh]
  28. [ nameh]
  29. [nameh ]
  30. [000nameh]
  31. [**nameh]

另外:fprintf() 函数把格式化的字符串写入到指定的输出流(例如:文件)

vfprintf()与 fprintf() 不同,vfprintf() 中的参数位于数组中。