Blogger Information
Blog 52
fans 1
comment 1
visits 38657
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
用xmind文件中总结的字符串函数库
小丑0o鱼
Original
650 people have browsed it

  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. });
Correction status:Uncorrected

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