博客列表 >用xmind文件中总结的字符串函数库

用xmind文件中总结的字符串函数库

小丑0o鱼
小丑0o鱼原创
2021年07月20日 19:12:55645浏览

  1. PHP字符串操作
  2. 字符串是 PHP 中重要的数据类型之一。在 Web 开发中,很多情况下都需要对字符串进行处理和分析,通常将涉及字符串的格式化、字符串的连接与分割、字符串的比较、查找等一系列操作。用户和系统的交互也基本上是用文字来进行的,因此系统对文本信息,即字符串的处理非常重要。
  3. $str = "zhant";
  4. // 字符串可以当做数组一样通过下标访问每一个字符
  5. echo $str[0]; // z
  6. echo $str{2}; // a
  7. // 修改字符串内容
  8. $str{4} = "g";
  9. echo $str; // zhang
  10. // 一个中文的汉字占三个字节
  11. $title = "你好";
  12. // strlen返回字符串的长度
  13. echo strlen($title); // 6
  14. // 那么访问的时候,我们需要进行拼接
  15. echo $title{0}.$title{1}.$title{2}; // 你
  16. 1
  17. 2
  18. 3
  19. 4
  20. 5
  21. 6
  22. 7
  23. 8
  24. 9
  25. 10
  26. 11
  27. 12
  28. 13
  29. 14
  30. 生成一个随机的四位验证码
  31. // 生成a-z A-Z 0-9 组成的字符串
  32. $codes = implode("",range('a','z')).implode("",range('A','Z')).implode("",range(0,9));
  33. $code = '';
  34. for ($i=0; $i < 4; $i++) {
  35. // 获取随机索引数
  36. $index = mt_rand(0,strlen($codes)-1);
  37. $code .= $codes[$index];
  38. }
  39. echo "<span style='color:red'>{$code}<span>";
  40. 1
  41. 2
  42. 3
  43. 4
  44. 5
  45. 6
  46. 7
  47. 8
  48. 9
  49. 10
  50. 字符串比较、分割、替换操作
  51. strcmpstrcasecmp字符串比较函数
  52. strcmphttps://www.php.net/manual/zh/function.strcmp.php
  53. strcasecmphttps://www.php.net/manual/zh/function.strcasecmp.php
  54. // 字符串比较函数 如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
  55. // strcmp ( string $str1 , string $str2 ) : int 严格区分大小写
  56. echo strcmp('abc','ab'); // 1
  57. echo strcmp('abc','abd'); // -1
  58. echo strcmp('abc','ABC'); // 1
  59. echo strcmp('abc','abc'); // 0
  60. // 根据ASCII码逐个进行比较
  61. // -------------------------------------
  62. // strcasecmp 和上述返回值一样 但不区分大小写
  63. echo strcasecmp('abc','ABC'); // 0
  64. echo strcasecmp('abc','abc'); // 0
  65. 1
  66. 2
  67. 3
  68. 4
  69. 5
  70. 6
  71. 7
  72. 8
  73. 9
  74. 10
  75. 11
  76. 12
  77. 字符串的拆分与合并操作
  78. implode() 数组的值转化为字符串 join()是该函数的别名: implode()
  79. explode字符串转数组:https://www.php.net/manual/zh/function.explode.php
  80. list() 把数组中的值赋给一组变量:https://www.php.net/manual/zh/function.list.php
  81. $study = ['html','css','js','es6','jquery','vue','react'];
  82. // 数组转字符串函数 第一个参数为分隔符 第二个参数为数组
  83. echo implode('---',$study);
  84. // html---css---js---es6---jquery---vue---react
  85. echo join(',',$study);
  86. // html,css,js,es6,jquery,vue,react
  87. // explode 字符串转换为数组
  88. $str = "html,css,js,es6,jquery,vue,react";
  89. // 以什么来拆分字符串
  90. print_r(explode(",", $str));
  91. /*
  92. Array ( [0] => html [1] => css [2] => js [3] => es6 [4] => jquery [5] => vue [6] => react )
  93. */
  94. // 第三个参数指定拆分成几个数组
  95. print_r(explode(",", $str,6));
  96. /*
  97. Array ( [0] => html [1] => css [2] => js [3] => es6 [4] => jquery [5] => vue,react )
  98. */
  99. // -------------------------
  100. // list() 将数组的值赋值给若干变量
  101. list($localhost,$username,$password,,$port) = explode(":", 'localhost:root:root:utf8:3306');
  102. echo "mysql:host={$localhost};username={$username};password={$password};port={$port}";
  103. /* mysql:host=localhost;username=root;password=root;port=3306 */
  104. // 关联数组 赋值给变量要以键值对的方式一一对应
  105. $params = ['host'=>'localhost','username'=>'root','password'=>'root'];
  106. list('host'=>$host,'username'=>$username,'password'=>$password) = $params;
  107. printf("host=%s;username=%s;password=%s",$host,$username,$password);
  108. /* host=localhost;username=root;password=root */
  109. 1
  110. 2
  111. 3
  112. 4
  113. 5
  114. 6
  115. 7
  116. 8
  117. 9
  118. 10
  119. 11
  120. 12
  121. 13
  122. 14
  123. 15
  124. 16
  125. 17
  126. 18
  127. 19
  128. 20
  129. 21
  130. 22
  131. 23
  132. 24
  133. 25
  134. 26
  135. 27
  136. 28
  137. 29
  138. 30
  139. 31
  140. 32
  141. 字符串截取
  142. // substr()字符串截取函数
  143. echo substr('abcdefg',3,2); // de
  144. echo substr('abcdefg',3); // defg
  145. echo substr('abcdefg',-3); // efg
  146. // ASCII转换函数 chr() ord() 一般用于判断用户名是否以字母开头,截取第一个字符判断其ASCII的大小范围 A 65 a 97
  147. // ASCII对照表http://c.biancheng.net/c/ascii/
  148. // ucfirst 将首字母转换为大写
  149. // ord() 字符串转ASCII码
  150. // chr() ASCII码转字符
  151. $username = 'admin';
  152. echo ord(substr(ucfirst($username),0,1))>=65 && ord(substr(ucfirst($username),0,1))<=90?'用户名正确':'用户名请以字母开头';
  153. echo strlen($username)<4||strlen($username)>10?'用户名长度需为6-10个字符':'用户名正确';
  154. 1
  155. 2
  156. 3
  157. 4
  158. 5
  159. 6
  160. 7
  161. 8
  162. 9
  163. 10
  164. 11
  165. 12
  166. 13
  167. 字符串替换函数(敏感词转义)
  168. str_replace() 子字符串替换:https://www.php.net/manual/zh/function.str-replace.php
  169. // 将window系统的目录分割符替换为Linux目录分隔符
  170. $path = "D:\phpstudy_pro\Extensions\php\php7.3.9nts\php.exe";
  171. // 查看当前操作系统支持的路径分隔符
  172. echo DIRECTORY_SEPARATOR;
  173. // 需要替换的字符内容 替换后的字符内容 字符串
  174. echo str_replace('\\','/',$path);
  175. /* D:/phpstudy_pro/Extensions/php/php7.3.9nts/php.exe */
  176. // 第四个参数可以接收替换的次数
  177. echo str_replace('转账','***','支持微信大额转账,支付宝转账,银行卡转账',$count);
  178. // 支持微信大额***,支付宝***,银行卡***
  179. echo "\'转账\'敏感词出现次数:{$count}";
  180. // 第一个参数 需要替换的字符内容可以是一个数组
  181. $vowels = array("赌博","美女",'发牌','澳门');
  182. echo str_replace($vowels, "**", "欢迎访问赌博平台,澳门皇冠赌博网站,美女在线发牌");
  183. // 欢迎访问**平台,**皇冠**网站,**在线**
  184. // 敏感词和替换内容都可以为数组,将替换为对应的内容
  185. $search = ['交友','广告','转账','直播','带货','陪聊','异性'];
  186. $flag = ['***','---','&&&','000','*货*','聊天','同性'];
  187. $news = '本公司承接各类广告代理,提供直播和带货教学服务,提供异性交友在线陪聊服务……';
  188. echo str_replace($search,$flag,$news);
  189. /* 本公司承接各类---代理,提供000和*货*教学服务,提供同性***在线聊天服务…… */
  190. 1
  191. 2
  192. 3
  193. 4
  194. 5
  195. 6
  196. 7
  197. 8
  198. 9
  199. 10
  200. 11
  201. 12
  202. 13
  203. 14
  204. 15
  205. 16
  206. 17
  207. 18
  208. 19
  209. 20
  210. 21
  211. 22
  212. 23
  213. 24
  214. URL链接解析函数
  215. parse_str() 将字符串解析成数组
  216. https://www.php.net/manual/zh/function.parse-str.php
  217. parse_url() 解析 URL,返回其组成部分的数组
  218. https://www.php.net/manual/zh/function.parse-url.php
  219. http_build_query 生成URL_encode之后的请求字符串
  220. https://www.php.net/manual/zh/function.http-build-query.php
  221. // parse_str() 将字符串解析成数组
  222. $str = "first=value&arr[]=foo+bar&arr[]=baz";
  223. parse_str($str, $output);
  224. extract($output);
  225. echo $first; // value
  226. echo $arr[0]; // foo bar
  227. echo $arr[1]; // baz
  228. $url = "id=1&name=zhang&gender=1";
  229. parse_str($url,$result);
  230. echo "<pre>";
  231. print_r($result);
  232. /*
  233. Array
  234. (
  235. [id] => 1
  236. [name] => zhang
  237. [gender] => 1
  238. )
  239. */
  240. // --------------------------------
  241. // parse_url() 解析 URL,返回其组成部分的数组
  242. $url = 'http://zhang.com:password@hostname/0425/demo.php?id=1&name=zhang#anchor';
  243. echo "<pre>";
  244. print_r(parse_url($url));
  245. /*
  246. Array
  247. (
  248. [scheme] => http
  249. [host] => hostname
  250. [user] => zhang.com
  251. [pass] => password
  252. [path] => /0425/demo.php
  253. [query] => id=1&name=zhang
  254. [fragment] => anchor
  255. )
  256. */
  257. // 可以通过设置第二个参数来返回需要的部分
  258. echo parse_url($url,PHP_URL_QUERY); // id=1&name=zhang
  259. echo parse_url($url, PHP_URL_PATH); // /0425/demo.php
  260. // -------------------------------------------
  261. // http_build_query — 生成 URL-encode 之后的请求字符串
  262. $url = "http://zhang.com?name=张珊&age=20&email=zhang@qq.com";
  263. $query = parse_url($url,PHP_URL_QUERY);
  264. // name=张珊&age=20&email=zhang@qq.com
  265. // 获取到query在通过parse_str转换为数组
  266. parse_str($query,$params);
  267. echo "<pre>";
  268. print_r($params);
  269. /*
  270. Array
  271. (
  272. [name] => 张珊
  273. [age] => 20
  274. [email] => zhang@qq.com
  275. )
  276. */
  277. // 请求参数转为Unicode
  278. echo http_build_query($params);
  279. // name=%E5%BC%A0%E7%8F%8A&age=20&email=zhang%40qq.com
  280. // http_build_query参数不光可以为数组,也可以为一个对象
  281. echo http_build_query(new class{
  282. public $name = 'admin';
  283. public $email = 'admin@php.cn';
  284. private $gender = 'male'; // 私有成员
  285. });
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议