博客列表 >PHP基础: 字符串函数

PHP基础: 字符串函数

zl的php学习博客
zl的php学习博客原创
2021年02月18日 18:26:03724浏览
  1. //------------------------------字符串操作-----------------------------------------------
  2. // 1. 将数组转为字符串打印: implode(连接符, 数组)和join()是同名函数, 返回的是一个字符串, 例:
  3. echo 'implode函数: ', implode('---', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), '<br>';
  4. echo 'join函数: ', join('---', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), '<hr>';
  5. // 2.把一个字符串解析成一个函数: explode(字符串中的分隔符, 字符串, 切割的间隔),返回的是一个数组, 例:
  6. print_r(explode(', ', 'z, x, c, v, b, n, n'));
  7. echo '<br>';
  8. print_r(explode(', ', 'z, x, c, v, b, n, n', 3)); // Array ( [0] => z [1] => x [2] => c, v, b, n, n )
  9. echo '<hr>';
  10. // 3. 把一个关联数组解析成字符串并赋值给对应键值创建的变量: extract(数组),返回的是解析后的变量数 例:
  11. extract(['name' => '张三', 'age' => 20, 'sex' => '男']);
  12. printf('姓名: %s, 年龄: %d, 性别: %s', $name, $age, $sex); // 姓名: 张三, 年龄: 20, 性别: 男
  13. echo '<hr>';
  14. //4.子串操作: substr(字符串, 起始索引, 长度). 返回的是一个新的字符串,并不会影响到原本的字符串,例:
  15. $str = 'abcdefghijklmnopqrstvwxyz';
  16. echo substr($str, 1, 5), '<hr>';
  17. // 5.统计字符串出现的次数: substr_count(字符串, 要查询的字符, 起始位置(默认从零开始), 长度(默认长度为字符串的长度)), 返回的是一个数字, 例:
  18. $str = 'abcdefghijklmnopqrstvwxyzabcdefghijklmnopqrstvwxyzabcdefghijklmnopqrstvwxyzabcdefghijklmnopqrstvwxyz';
  19. echo '数组中a出现的次数: ', substr_count($str, 'a'), '<hr>';
  20. // 6.字符串的替换操作: substr_replace(字符串, 要替换的字符, 起始位置(默认从零开始), 长度), 返回结果为全新的 字符串/数组,例:
  21. $str = 'abcdefghijklmnopqrstvwxyz';
  22. echo substr_replace($str, '你好,世界!', 0), '<br>'; // 默认长度不填的话长度为字符串长度
  23. echo $str, '<br>';
  24. echo substr_replace($str, '你好,世界!', 0, 5), '<br>';
  25. echo $str, '<hr>';
  26. // 7. 字符串切割为数组: str_split(字符串, 切割的间隔, 默认为1), 返回的是一个数组.字符串中有中文的画不要使用该函数,应该用mb扩展. 例:
  27. $str = 'abcdefghijklmnopqrstvwxyz';
  28. print_r(str_split($str));
  29. echo '<hr>';
  30. // 8. 向一个字符串中插入字符串并指定长度: str_pad(字符串, 长度, 插入字符串, 插入位置(0: 全插入到左边, 1: 全插入到右边, 2: 左右等分));
  31. $str = 'abcdefghijklmnopqrstvwxyz';
  32. echo str_pad('php', 10,'=',STR_PAD_BOTH),'<br>';
  33. echo str_pad($str, strlen($str)+10, '~', 0), '<hr>';
  34. //9. 重复字符窜: str_repeat(字符串, 重复次数), 返回一个新的字符串 例:
  35. echo str_repeat('ABA--', 10),'<hr>';
  36. // 10. 替换: str_replace(准备替换字符串/数组, 要替换的字符串, 字符串), 如果替换的是关联数组的话, 第一个参数为value值., 例:
  37. $str = 'abcdefghijklmnopqrstvwxyz';
  38. $arr = [1,2,3,4,5,67];
  39. echo str_replace('abc', 'ABC', $str),'<br>';
  40. print_r(str_replace(67, 'ABC', $arr));
  41. echo '<br>';
  42. print_r(str_replace('张三', '李四', ['name' => '张三', 'age' => 20, 'sex' => '男']));
  43. echo '<hr>';
  44. // 11. 获取字符串的位置: strPps(字符串, 要查询的字符串, 查询的起始位置(默认从起始位置开始)), 例:
  45. $str = 'abcdefghijklmnopqrstvwxyz';
  46. echo strpos($str, 'abc', 10), '<hr>' ;
  47. // 12. 查询字符首次出现的位置, 并返回它: strstr(字符串, 要查询的字符串, false(返回查询字符串的后面的字符串)/true(返回查询字符串的前面的字符串)[默认false])
  48. echo strstr('abcdefghijklmnopqrstvwxyz', 'k'), '<br>';
  49. echo strstr('abcdefghijklmnopqrstvwxyz', 'k', true), '<hr>';
  50. // 13. url相关
  51. // 13.1 把查询字符串解析到一个数组中: parse_str(查询字符串, 变量名),返回一个数组. 例:
  52. $cxzfc = 'name=张三&age=20';
  53. parse_str($cxzfc, $cxzfcArr);
  54. print_r($cxzfcArr);
  55. echo '<hr>';
  56. // 13.2 解析url: parse_url(url), 返回一个数组, 例:
  57. $url = 'http://php.io/0201/demo4.php?id=5&name=admin%role=1';
  58. print_r(parse_url($url));
  59. echo '<hr>';
  60. // 13.3 快速构造查询字符串: http_build_query(参数), 返回字符串. 例:
  61. echo http_build_query( ['name' => '张三', 'age' => 20, 'sex' => '男']), '<hr>';
  62. ob_clean();
  63. //----------------------------------------------------------------------------------------------------------
  64. // 1. 翻转字符串: strrev(字符串), 例:
  65. echo strrev('HELLO WORLD!'), '<hr>';
  66. // 2. 获取字符串的长度: strlen(字符串), 例:
  67. echo strlen('nihao'), '<hr>'; // 5
  68. // 3. 英文字符串转小写: strtolower(字符串), 返回一个新的字符串
  69. // 4. 英文字符串转大写: strtoupper(字符串), 返回一个新的字符串
  70. $str = 'abcdefghijklmnopqrstvwxyz';
  71. echo strtoupper($str), '<hr>'; // 5
  72. echo strtolower($str), '<hr>'; // 5
  73. // 5. 字符串中每个英文单词(该函数中: 以英文开头并以空格分隔的都是英文单词)的首字母转大写: ucwords(字符串), 返回一个新的字符串
  74. echo ucwords($str), '<br>'; // Abcdefghijklmnopqrstvwxyz
  75. echo ucwords($str . ' qfw你好'), '<hr>'; // Abcdefghijklmnopqrstvwxyz Qfw你好
  76. //6. 以英文字母开头的整个字符串的首字母转换成大写: ucfirst(字符串), 返回一个新的字符串
  77. echo ucfirst($str . ' qfw你好'), '<br>'; // Abcdefghijklmnopqrstvwxyz qfw你好
  78. echo ucfirst('你好qfw' . $str), '<hr>'; // 你好qfwabcdefghijklmnopqrstvwxyz
  79. //7.获取字符串在另一个字符串中最后一次出现的位置: strrchr(要搜索的字符串, 要查找的字符串)
  80. echo strrchr($str, 'qfw'), '<hr>'; // 你好qfwabcdefghijklmnopqrstvwxyz ---> qrstvwxyz
  81. // 8. 随机地打乱字符串中的所有字符: str_shuffle(字符串), 不支持中文字符
  82. echo str_shuffle('qfwabcdefghijklmnopqrstvwxyz'), '<hr>'; // qfwabcdefghijklmnopqrstvwxyz ---> bjznmlcxwrfohqvistafkpwgqdye
  83. // 9. 得到指定字符的ASCII: ord($char)
  84. // 10. 根据ASCII得到指定的字符: chr($ascii), 不支持中文,要用mb扩展
  85. $str = 'A';
  86. echo ord($str), '<br>';
  87. echo chr(ord($str)), '<br>';
  88. $str = '你好';
  89. echo ord($str), '<br>';
  90. echo chr(ord($str)), '<hr>'; // �
  91. // 11. 返回字符串中单词的使用情况: str_word_count(字符串, 指定函数的返回值(0: 返回单词数量, 1: 返回包含所有的单词的数组,
  92. // 2: 返回包含所有的单词的数组,key是该单词出现的位置))
  93. $juzi = 'People die, but real love is forever.生命会消逝,但真爱永存。is forever';
  94. echo str_word_count($juzi), '<br>';
  95. var_dump(str_word_count($juzi, 1));
  96. echo '<br>';
  97. var_dump(str_word_count($juzi, 2));
  98. echo '<hr>';
  99. // 12. 以二进制的方式比较字符串(不区分大小写): strcasecmp(字符串1, 字符串2), 返回一个数字(
  100. // >0: 字符串1>字符串2,
  101. // <0: 字符串1<字符串2,
  102. // ==0: 字符串1==字符串2)
  103. var_dump(strcasecmp('AB C', 'ab c')); // 65===65 || 97===97 0
  104. echo '<hr>';
  105. // 13. 以二进制的方式比较字符串: strcmp(同12)
  106. var_dump(strcmp('AB C', 'ab c')); // 65<97 -1
  107. echo '<hr>';
  108. // 15. 二进制安全比较字符串开头的若干个字符(不区分大小写):strncasecmp(字符串1, 字符串2, 最大比较长度)
  109. var_dump(strncasecmp('AB C', 'ab c', 2)); // // (65===65, 66===66) || (97===97, 98===98) ===> 0
  110. echo '<hr>';
  111. // 16. 二进制安全比较字符串开头的若干个字符: strncmp(字符串1, 字符串2, 最大比较长度)
  112. var_dump(strncmp('Ab C', 'bA c', 2)); // (65, 98) || (98, 65) ===> 65<98 ===> -1
  113. echo '<hr>';
  114. // 17. 从字符串中去除 HTML 和 PHP 标记: strip_tags(字符串, 可选参数, 指定不用去除的字符),返回一个字符
  115. echo strip_tags('asasa<a>fasfas</a><br>'), '<br>';
  116. echo strip_tags('asasa<a>fasfas</a><br><span>爱搭搭所多span</span><b>爱搭搭所多b</b>', '<br><span><b>'), '<br>';
  117. // 18. 打断字符串为指定数量的字串: wordwrap(字符串, 切割长度, 拼接字符串, false(切割的位置是英文单词的话将不会把这个单词切割,/true)
  118. $text = " The quick brown fox jumped over the lazy dog. ";
  119. echo wordwrap($text, 6, ',<br>'), '<hr>';
  120. echo wordwrap($text, 3, ',<br>', true), '<hr>';
  121. // 19. 去除字符串首尾处的空白字符(或其他字符): trim(字符串, 可选参数,去除的字符),返回一个字符串
  122. echo trim($text), '<hr>';
  123. $text = "\nThe quick brown fox jumped over the lazy dog.\t";
  124. echo trim($text), '<hr>';
  125. // 20.标记分割字符串: strtok(字符串, 分割字符串时使用的分界字符), 注意,该函数只有致癌第一次调用的时候才有第一个参数,
  126. // 再次调用时,该函数会记住它在字符串 string 中的位置.
  127. $text = "The quick brown fox jum\nped over the lazy dog.t";
  128. /* 使用制表符和换行符作为分界符 */
  129. $tok = strtok($text, " \n\t");
  130. echo $tok, '<br>';
  131. while ($tok !== false) {
  132. echo "Word=$tok<br />";
  133. $tok = strtok(" \n\t");
  134. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议