本文实例总结了PHP字符串处理技巧。分享给大家供大家参考,具体如下:
Demo1.php
123456789101112 | <?php //源代码是文本形式,页面显示是 web 形式 $str = ' PHP ' ; //清理一下两边的空格 ltrim 只清理左,rtrim只清理右边 echo ltrim( $str ); echo '<br/>' ; echo rtrim( $str ); echo '<br/>' ; //两边都清理 echo trim( $str ); //echo chop($str); ?> |
Demo2.php
1234567 | <?php $str = "This is 一站式建网站 \n This is a OneStopWeb" ; //但是,我现在想要在网页中实现换行 //在回帖的时候,一个回车就是 \n //我们通过函数来实现转换过程 echo nl2br ( $str ); ?> |
Demo3.php
12345678 | <?php //将所有字符转换成 HTML $str = '<strong>阅谁问君诵,水落清香浮。</strong>' ; //echo htmlentities($str); //我们只要转换特殊字符即可 //echo htmlspecialchars($str);//<strong>阅谁问君诵,水落清香浮。</strong> echo strip_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 就是写入数据库的,我拿出来的话,就会有 \ 这个符号 echo stripcslashes ( $a ); //首先将写进数据库的字符串通过 addslashes() 函数过滤一下,然后拿出来的时候 //再通过 stripcslashes() 解析一下显示 ?> |
Demo5.php
12345678 | <?php //将字符串转换成大写 echo strtoupper ( 'oneStopWeb' ); //ONESTOPWEB //将字符串转换成小写 echo strtolower ( 'oneStopWeb' ); //onestopweb //将第一个字母转换成大写 echo ucfirst( 'oneStopWeb' ); //OneStopWeb ?> |
Demo6.php
12345678910111213141516 | <?php $str = 'oneStopWeb' ; //echo str_pad($str,11).'is good!'; //oneStopWeb is good! //oneStopWeb### //echo str_pad($str,13,'#') echo str_pad ( $str ,18, '#' ,STR_PAD_BOTH); echo '<br/>' ; echo str_pad ( $str ,18, '#' ,STR_PAD_LEFT); echo '<br/>' ; echo str_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 开始的,最后一个参数,是取出的个数 echo substr ( $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' ; echo strrev ( $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 //如果按照自然排序方式比较呢? echo strnatcmp ( '2' , '10' ); //-1 ?> |
Demo13.php
12345 | <?php //strspn //后面两个数字的参数,是从第几位开始,取多少位 echo strspn ( 'one' , 'oneStopWeb@163.com' ,1,5); ?> |
Demo14.php
1234 | <?php //测试字符串的长度 echo strlen ( 'oneStopWeb@163.com' ) ; ?> |
Demo15.php
1234 | <?php //测试字符串出现的频率 echo substr_count( 'oneStopWeb@163.com' , 'o' ); ?> |
Demo16.php
123456 | <?php //从指定的字符串开始输出之后的字符串 echo strstr ( 'oneStopWeb@163.com' , '@' ); //不区别大小写的 echo stristr ( 'oneStopWeb@163.com' , 's' ); ?> |
Demo17.php
1234567 | <?php //查找某字符串最先出现的位置 //位置是从第 0 个位置开始计算,W第一次出现在第 7 个位置上 echo strpos ( 'oneStopWeb@163.com' , 'W' ); //最后出现的位置 echo strrpos ( '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) echo substr_replace( 'oneStopWeb@163.com' , '###' ,0,5); ?> |
Demo19.php
1234567891011 | <?php //取中文长度 $str = '阅谁问君诵,水落清香浮。' ; //用普通的 strlen 取一个中文字,就算两个 //echo strlen($str) ; //使用 mb_strlen 来取中文,有第二个参数,字符编码 echo mb_strlen( $str , 'GBK' ); //12 //如果你使用普通的 strlen 这个函数,我取 1 个字符 //采用 mb_substr 来取中文字符 echo mb_substr( $str ,2,1, 'GBK' ); //问 ?> |
Demo20.php
123456789 | <?php $str = '阅谁问君诵,水落清香浮。' ; //求出 o 最先出现的位置 //中文的算法,两个字符一个中文字 //mb 就算一个 //echo strpos($str,'问');//4 //按中文一个字符来计算,这样不会出现半个中文的状态 echo mb_strpos( $str , '问' ,0, 'GBK' ); ?> |
Demo21.php
1234567 | <?php // $str = '阅谁问君诵,水落清香浮。' ; // echo mb_substr($str,0,1,'GBK'); $str = '阅谁问君诵,水落清香浮。' ; //这个就无所谓用 mb_strstr echo strstr ( $str , '水' ); ?> |
Demo22.php
1234 | <?php $str = '阅谁问君诵,水落清香浮。' ; echo mb_substr_count( $str , '问' , 'GBK' ); ?> |