溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中字符串處理技巧有哪些

發(fā)布時間:2021-08-31 14:24:28 來源:億速云 閱讀:119 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下PHP中字符串處理技巧有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

Demo1.php

<?php
  //源代碼是文本形式,頁面顯示是 web 形式
  $str = '      PHP      ';
  //清理一下兩邊的空格 ltrim 只清理左,rtrim只清理右邊
  echo ltrim($str);
  echo '<br/>';
  echo rtrim($str);
  echo '<br/>';
  //兩邊都清理
  echo trim($str);
  //echo chop($str);
?>

Demo2.php

<?php
  $str = "This is 一站式建網(wǎng)站 \n This is a OneStopWeb";
  //但是,我現(xiàn)在想要在網(wǎng)頁中實現(xiàn)換行
  //在回帖的時候,一個回車就是 \n
  //我們通過函數(shù)來實現(xiàn)轉(zhuǎn)換過程
  echo nl2br($str);
?>

Demo3.php

<?php
  //將所有字符轉(zhuǎn)換成 HTML
  $str = '<strong>閱誰問君誦,水落清香浮。</strong>';
  //echo htmlentities($str);
  //我們只要轉(zhuǎn)換特殊字符即可
  //echo htmlspecialchars($str);//<strong>閱誰問君誦,水落清香浮。</strong>
  echo strip_tags($str); //閱誰問君誦,水落清香浮。
?>

Demo4.php

<?php
  $str = 'This is "一站式建網(wǎng)站" \n This is a OneStopWeb';
  //對于即將插入數(shù)據(jù)庫的字符串,把有問題的字符處理一下
  //echo addslashes($str); //This is \"一站式建網(wǎng)站\" \\n This is a OneStopWeb
  $a = addslashes($str);
  //這個 $a 就是寫入數(shù)據(jù)庫的,我拿出來的話,就會有 \ 這個符號
  echo stripcslashes($a);
  //首先將寫進數(shù)據(jù)庫的字符串通過 addslashes() 函數(shù)過濾一下,然后拿出來的時候
  //再通過 stripcslashes() 解析一下顯示
?>

Demo5.php

<?php
  //將字符串轉(zhuǎn)換成大寫
  echo strtoupper('oneStopWeb');//ONESTOPWEB
  //將字符串轉(zhuǎn)換成小寫
  echo strtolower('oneStopWeb');//onestopweb
  //將第一個字母轉(zhuǎn)換成大寫
  echo ucfirst('oneStopWeb'); //OneStopWeb
?>

Demo6.php

<?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

<?php
  //explode -- 使用一個字符串分割另一個字符串
  //返回的是一個數(shù)組
  //explode 第一參數(shù)是分割字符串,第二個參數(shù)是要被分割的字符串
  $email = explode('@','oneStopWeb@163.com');
  //print_r($email); //Array ( [0] => oneStopWeb [1] => 163.com )
  //分割完了之后,我經(jīng)過一輪篩選,還要重新組合
// $arr = array('oneStop','@','163.com');
// $str = implode('&',$arr);
// echo $str;//oneStop&@&163.com
  $str = implode(' - ',$email);
  echo $str; //oneStopWeb - 163.com
?>

Demo8.php

<?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

<?php
  $str = 'oneStopWeb@163.com';
  //中間的參數(shù)表示開始的位置,位置是從 0 開始的,最后一個參數(shù),是取出的個數(shù)
  echo substr($str,0,5)  ;//oneSt
?>

Demo10.php

<?php
  //$str = 'oneStopWeb@163.com';
  $str = '閱誰問君誦,水落清香浮。'; //中文亂碼
  print_r(str_split($str));
?>

Demo11.php

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

Demo12.php

<?php
  //通過 == 來比較字符串是否一致
  //最后的返回值是布爾值
  //echo 'a' == 'a';
  //比較兩個字符串
  //echo strcmp('a','b');
// if(strcmp('a','a') == 0){
//   echo '相等';
// }
  //echo strcasecmp('B','b'); //不區(qū)別大小寫
  //目前是非自然排序
  //echo strcmp('2','10');//1
  //如果按照自然排序方式比較呢?
  echo strnatcmp('2','10');//-1
?>

Demo13.php

<?php
  //strspn
  //后面兩個數(shù)字的參數(shù),是從第幾位開始,取多少位
  echo strspn('one','oneStopWeb@163.com',1,5);
?>

Demo14.php

<?php
  //測試字符串的長度
  echo strlen('oneStopWeb@163.com') ;
?>

Demo15.php

<?php
  //測試字符串出現(xiàn)的頻率
  echo substr_count('oneStopWeb@163.com','o');
?>

Demo16.php

<?php
  //從指定的字符串開始輸出之后的字符串
  echo strstr('oneStopWeb@163.com','@');
  //不區(qū)別大小寫的
  echo stristr('oneStopWeb@163.com','s');
?>

Demo17.php

<?php
  //查找某字符串最先出現(xiàn)的位置
  //位置是從第 0 個位置開始計算,W第一次出現(xiàn)在第 7 個位置上
  echo strpos('oneStopWeb@163.com','W');
  //最后出現(xiàn)的位置
  echo strrpos('oneStopWeb@163.com','o');
?>

Demo18.php

<?php
  //字符串替換
  //第一個參數(shù)表示要查找的字符串(部分)
  //第二個參數(shù)表示要替換成的字符串(部分)
  //第三個參數(shù)表示原來的被替換的完整字符串
  //echo str_replace('one','yi','oneStopWeb@163.com');//yiStopWeb@163.com
  //str_ireplace 是不區(qū)分大小寫
  //echo str_ireplace('oNe','yi','oneStopWeb@163.com');//yiStopWeb@163.com
  //從第一個位置開始(參數(shù)3),取出 5 個來(參數(shù)4),將它替換成 ###(參數(shù)2)
  echo substr_replace('oneStopWeb@163.com','###',0,5);
?>

Demo19.php

<?php
  //取中文長度
  $str = '閱誰問君誦,水落清香浮。';
  //用普通的 strlen 取一個中文字,就算兩個
  //echo strlen($str) ;
  //使用 mb_strlen 來取中文,有第二個參數(shù),字符編碼
  echo mb_strlen($str,'GBK');//12
  //如果你使用普通的 strlen 這個函數(shù),我取 1 個字符
  //采用 mb_substr 來取中文字符
  echo mb_substr($str,2,1,'GBK');//問
?>

Demo20.php

<?php
  $str = '閱誰問君誦,水落清香浮。';
  //求出 o 最先出現(xiàn)的位置
  //中文的算法,兩個字符一個中文字
  //mb 就算一個
  //echo strpos($str,'問');//4
  //按中文一個字符來計算,這樣不會出現(xiàn)半個中文的狀態(tài)
  echo mb_strpos($str,'問',0,'GBK');
?>

Demo21.php

<?php
// $str = '閱誰問君誦,水落清香浮。'  ;
// echo mb_substr($str,0,1,'GBK');
  $str ='閱誰問君誦,水落清香浮。';
  //這個就無所謂用 mb_strstr
  echo strstr($str,'水');
?>

Demo22.php

<?php
  $str ='閱誰問君誦,水落清香浮。';
  echo mb_substr_count($str,'問','GBK');
?>

以上是“PHP中字符串處理技巧有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI