Blogger Information
Blog 17
fans 1
comment 0
visits 14489
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础: 字符串函数
zl的php学习博客
Original
725 people have browsed it
  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. }
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post