PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)

时间:2021-07-31 19:58:14

本文实例总结了PHP字符串处理技巧。分享给大家供大家参考,具体如下:

Demo1.php

?
123456789101112 <?php  //源代码是文本形式,页面显示是 web 形式  $str= '      PHP      ';  //清理一下两边的空格 ltrim 只清理左,rtrim只清理右边  echoltrim($str);  echo'<br/>';  echortrim($str);  echo'<br/>';  //两边都清理  echotrim($str);  //echo chop($str);?>

Demo2.php

?
1234567 <?php  $str= "This is 一站式建网站 \n This is a OneStopWeb";  //但是,我现在想要在网页中实现换行  //在回帖的时候,一个回车就是 \n  //我们通过函数来实现转换过程  echonl2br($str);?>

Demo3.php

?
12345678 <?php  //将所有字符转换成 HTML  $str= '<strong>阅谁问君诵,水落清香浮。</strong>';  //echo htmlentities($str);  //我们只要转换特殊字符即可  //echo htmlspecialchars($str);//<strong>阅谁问君诵,水落清香浮。</strong>  echostrip_tags($str);//阅谁问君诵,水落清香浮。?>

Demo4.php

?
12345678910 <?php  $str= 'This is "一站式建网站" \n This is a OneStopWeb';  //对于即将插入数据库的字符串,把有问题的字符处理一下  //echo addslashes($str); //This is \"一站式建网站\" \\n This is a OneStopWeb  $a= addslashes($str);  //这个 $a 就是写入数据库的,我拿出来的话,就会有 \ 这个符号  echostripcslashes($a);  //首先将写进数据库的字符串通过 addslashes() 函数过滤一下,然后拿出来的时候  //再通过 stripcslashes() 解析一下显示?>

Demo5.php

?
12345678 <?php  //将字符串转换成大写  echostrtoupper('oneStopWeb');//ONESTOPWEB  //将字符串转换成小写  echostrtolower('oneStopWeb');//onestopweb  //将第一个字母转换成大写  echoucfirst('oneStopWeb');//OneStopWeb?>

Demo6.php

?
12345678910111213141516 <?php  $str= 'oneStopWeb';  //echo str_pad($str,11).'is good!'; //oneStopWeb is good!  //oneStopWeb###  //echo str_pad($str,13,'#')  echostr_pad($str,18,'#',STR_PAD_BOTH);  echo'<br/>';  echostr_pad($str,18,'#',STR_PAD_LEFT);  echo'<br/>';  echostr_pad($str,18,'#',STR_PAD_RIGHT);/** * ####oneStopWeb#### * ########oneStopWeb * oneStopWeb######## * */?>

Demo7.php

?
12345678910111213 <?php  //explode -- 使用一个字符串分割另一个字符串  //返回的是一个数组  //explode 第一参数是分割字符串,第二个参数是要被分割的字符串  $email= explode('@','oneStopWeb@163.com');  //print_r($email); //Array ( [0] => oneStopWeb [1] => 163.com )  //分割完了之后,我经过一轮筛选,还要重新组合// $arr = array('oneStop','@','163.com');// $str = implode('&',$arr);// echo $str;//oneStop&@&163.com  $str= implode(' - ',$email);  echo$str; //oneStopWeb - 163.com?>

Demo8.php

?
123456789101112131415161718192021222324 <?php// $str = 'I will be back';// $arr = explode(' ',$str);// print_r($arr); //Array ( [0] => I [1] => will [2] => be [3] => back )  $str= 'I,will.be#back';  $tok= strtok($str,',.#');  //echo $tok;  while($tok){    echo$tok.'<br/>';    $tok= strtok(',.#');  }// $str = 'I will be back';// $tok = strtok($str,' ');// //echo $tok;// while($tok){//   echo $tok.'<br/>';//   $tok = strtok(' ');// }// $tok = strtok(' ');// echo $tok;//Iwill// //指针没有下移,而是重新来了一次// $tok = strtok($str,' ');// echo $tok;?>

Demo9.php

?
12345 <?php  $str= 'oneStopWeb@163.com';  //中间的参数表示开始的位置,位置是从 0 开始的,最后一个参数,是取出的个数  echosubstr($str,0,5)  ;//oneSt?>

Demo10.php

?
12345 <?php  //$str = 'oneStopWeb@163.com';  $str= '阅谁问君诵,水落清香浮。';//中文乱码  print_r(str_split($str));?>

Demo11.php

?
1234 <?php  $str= 'oneStopWeb@163.com';  echostrrev($str);//moc.361@beWpotSeno?>

Demo12.php

?
123456789101112131415 <?php  //通过 == 来比较字符串是否一致  //最后的返回值是布尔值  //echo 'a' == 'a';  //比较两个字符串  //echo strcmp('a','b');// if(strcmp('a','a') == 0){//   echo '相等';// }  //echo strcasecmp('B','b'); //不区别大小写  //目前是非自然排序  //echo strcmp('2','10');//1  //如果按照自然排序方式比较呢?  echostrnatcmp('2','10');//-1?>

Demo13.php

?
12345 <?php  //strspn  //后面两个数字的参数,是从第几位开始,取多少位  echostrspn('one','oneStopWeb@163.com',1,5);?>

Demo14.php

?
1234 <?php  //测试字符串的长度  echostrlen('oneStopWeb@163.com') ;?>

Demo15.php

?
1234 <?php  //测试字符串出现的频率  echosubstr_count('oneStopWeb@163.com','o');?>

Demo16.php

?
123456 <?php  //从指定的字符串开始输出之后的字符串  echostrstr('oneStopWeb@163.com','@');  //不区别大小写的  echostristr('oneStopWeb@163.com','s');?>

Demo17.php

?
1234567 <?php  //查找某字符串最先出现的位置  //位置是从第 0 个位置开始计算,W第一次出现在第 7 个位置上  echostrpos('oneStopWeb@163.com','W');  //最后出现的位置  echostrrpos('oneStopWeb@163.com','o');?>

Demo18.php

?
1234567891011 <?php  //字符串替换  //第一个参数表示要查找的字符串(部分)  //第二个参数表示要替换成的字符串(部分)  //第三个参数表示原来的被替换的完整字符串  //echo str_replace('one','yi','oneStopWeb@163.com');//yiStopWeb@163.com  //str_ireplace 是不区分大小写  //echo str_ireplace('oNe','yi','oneStopWeb@163.com');//yiStopWeb@163.com  //从第一个位置开始(参数3),取出 5 个来(参数4),将它替换成 ###(参数2)  echosubstr_replace('oneStopWeb@163.com','###',0,5);?>

Demo19.php

?
1234567891011 <?php  //取中文长度  $str= '阅谁问君诵,水落清香浮。';  //用普通的 strlen 取一个中文字,就算两个  //echo strlen($str) ;  //使用 mb_strlen 来取中文,有第二个参数,字符编码  echomb_strlen($str,'GBK');//12  //如果你使用普通的 strlen 这个函数,我取 1 个字符  //采用 mb_substr 来取中文字符  echomb_substr($str,2,1,'GBK');//问?>

Demo20.php

?
123456789 <?php  $str= '阅谁问君诵,水落清香浮。';  //求出 o 最先出现的位置  //中文的算法,两个字符一个中文字  //mb 就算一个  //echo strpos($str,'问');//4  //按中文一个字符来计算,这样不会出现半个中文的状态  echomb_strpos($str,'问',0,'GBK');?>

Demo21.php

?
1234567 <?php// $str = '阅谁问君诵,水落清香浮。'  ;// echo mb_substr($str,0,1,'GBK');  $str='阅谁问君诵,水落清香浮。';  //这个就无所谓用 mb_strstr  echostrstr($str,'水');?>

Demo22.php

?
1234 <?php  $str='阅谁问君诵,水落清香浮。';  echomb_substr_count($str,'问','GBK');?>