现在的位置: 首页学习笔记>正文
PHP字符串比较和替换。
发表于6年前 学习笔记 评论数 9

停了几天没学习了,进度不给力了. - -

也好好休息了2,该干嘛还是要干嘛的.

恩 不瞎扯了,继续.

继续上次的学习,

原来我们貌似学过'=='号来比较两个字符串是否相等.

PHP可以进行更复杂的比较,这些我们分为两类,部分匹配和其他情况.

独家记忆

  1. <?php   
  2.   
  3. //strcmp()这个函数需要两个进行比较的参数字符串,可以先猜这个输出的是什么 。   
  4. //   
  5. echo strcmp('12222','222234');     
  6.     
  7.   
  8.   
  9. //如果第一个大于第二个,返回的就是真 为1;   
  10. //如果第二个大于第一个,返回的就是-1;   
  11. //而这里我们返回的是-1.   
  12. //为什么呢? 因为这个不是自然排序比较 只是字符串的比较.   
  13. //因为第二个的数字比第一个的首数字大,所以就判它大了.   
  14. //怎么解决这个问题呢   
  15.   
  16.   
  17.   
  18.   
  19.   
  20. //echo strnatcmp();这个就是按自然排序来的,   
  21. //什么是自然排序呢?  就是人们习惯的排序....   
  22. //   
  23. echo '<br />';   
  24. echo strnatcmp('22222222','9999');   
  25.   
  26.   
  27.   
  28. //我们来个循环来更清楚的学习字符串的比较.   
  29. if (strcmp('222','222')==0)   
  30. {   
  31.     echo '他们相等';   
  32. }   
  33.   
  34. //OK 这个成立。   
  35.   
  36.   
  37. if (strcmp('AAA','aaa')==0)   
  38. {   
  39.     echo '他们也相等';   
  40. }   
  41. //这个呢,貌似不出意外是打印不出来的吧.   
  42. //因为这个函数不能识别大小写.   
  43.   
  44.   
  45.   
  46.   
  47.   
  48.   
  49.   
  50. //这里我们又要学习一个函数了.   
  51. //strcasecmp()这个和strcmp一样但是能区分大小写   
  52.   
  53.   
  54. echo '<br />';   
  55. if (strcasecmp('aaa','AAA')==0)   
  56. {   
  57.     echo '这下相等了吧';   
  58. }   
  59.   
  60.   
  61. echo '<br />';   
  62. //继续 strspn()函数返回一个字符串中包含中另一个字符串中字符的第一部分的长度,   
  63. //就是求两个字符串之间相同的部分,然后返回相同的长度字符数.   
  64.   
  65. echo strspn('mechao','www.mechao.cn');   
  66.   
  67. //strlen()函数测试字符串的长度   
  68. echo strlen('独家记忆是一个独立博客');   
  69. //返回的是22, 恩这个就不过多解释了.   
  70.   
  71.   
  72. echo '<br />';   
  73. //substr_count()返回一个字符串在另一个字符串中出现的字数   
  74.   
  75. echo substr_count('神爱人人爱神人人爱神','人');   
  76. //返回的是4  OK.   
  77.   
  78.   
  79. //字符串的比较到这差不多了,下面开始查找替换字符串.   
  80. //我们有时候需要检查一个更长度字符串中是否含有一个特定的字字符串.   
  81. //这种部分匹配通常比测试字符串的完全等价更有用处,   
  82.   
  83. //strstr()   
  84. echo '<br />';   
  85. echo strstr('www.mechao.cn','m');   
  86. //返回的就是mechao.cn 找到m匹配 然后到结束   
  87.   
  88. echo '<br />';   
  89. echo strstr('www.Mechao.cn','m');   
  90. //这样貌似就打印不出来了,为什么,因为不会区分大小写.   
  91. echo stristr('www.Mechao.cn','m');   
  92. //这样就能区分了,stristr()和strstr()一样但是会区分大小写   
  93. //这个用处比较多吧,模糊查找等等...   
  94.   
  95. //还有个是strrchr()就是别名,意义一样 就不举例了.   
  96.   
  97. //好像现在都建议strpos()函数代替strstr()说是速度快吧   
  98. //这个我就不在这研究了.   
  99.   
  100.   
  101. echo '<br />';   
  102. //字符串替换   
  103.        
  104.     //第一个参数表示要查找的字符串(部分)   
  105.     //第二个参数表示要替换成的字符串(部分)   
  106.     //第三个参数表示原来的被替换的完整字符串   
  107.     echo str_replace('mechao','suchao','This is mechao!');    
  108.     //str_ireplace是不区分大小写   
  109.        
  110. echo '<br />';   
  111.     //从第一个位置开始(参数3),取出5个来(参数4),将它替换成&&&(参数2)   
  112.     echo substr_replace('www.mechao.com','***',0,3);   
  113.   
  114.   
  115.   
  116. ?>  
×
腾讯微博