首頁 > 後端開發 > php教程 > php字串比較與查找方法詳解

php字串比較與查找方法詳解

WBOY
發布: 2016-07-25 08:54:06
原創
1044 人瀏覽過
  1. var_dump(0 == 'test');
  2. var_dump(0 == '');
  3. var_dump(5 > 't');
  4. var_dump(strcmp(5, 't'));
複製程式碼

結果為(第1~3結果是不對的,只有第4個是對的): 4bool(true) bool(true) bool(true) int(-1) 2. 字串處理 1. 子串 $sub = substr(string, start[, length]); 2. 子串替換 $newstring = substr_replace(string, new, start[, length]); 用這個函數可以實現字串的插入,刪除操作。這個函數的start和length可以是負數。分別表示從後開始計算以及保留最後幾位不替換。 3. 字串反序 $newstring = strrev(string); 4. 重複字串 $newstring = str_repeat(string, count); 傳回一個重複count次string的新字串。 5. 填充字串 $newstring = str_pad(to_pad, length[, with[, type]]); 其中type有:str_pad_right(預設)、str_pad_left和str_pad_both三種;with預設為空格。函數表示把to_pad字串用with填充為一個長度為length的字串。 如下程式碼:

  1. // 子字串

  2. var_dump(substr('1234567890', 8)); / 90
  3. var_dump(substr('1234567890', 0, 2)); // 12
  4. // 反方向子字串
  5. var_dump(substr('1234567890', -85); // 034
  6. var_dump(substr('1234567890', -8, -2)); // 345678
  7. var_dump(substr('1234567890', -8, 2)); // 34
  8. // 插入

  9. var_dump(substr_replace('1234567890', 'a', 0, 0)); // a1234567890
  10. // 刪除
  11. var_dump(substr''replace('12346790' 8)); // 12345678
  12. // 反方向刪除
  13. var_dump(substr_replace('1234567890', '', -2, -1)); // 123456780
  14. // 替換
  15. // 替換
  16. (substr_replace('1234567890', 'a', 0, 1)); // a234567890
  17. // 反方向替換
  18. var_dump(substr_replace('1234567890', 'a', -2,, -2, -2, - ; // 12345678a0
  19. // 字串反轉

  20. var_dump(strrev('1234567890')); // 0987654321
  21. // 重複字元字串

  22. var_dump(str_repeat('12', 3)); // 121212
  23. // 填入字串

  24. var_dump(str_pad('a', 10, '12' )); // a121212121
  25. var_dump(str_pad('a', 10, '12', str_pad_left)); // 121212121a
  26. var_dump(str_pad('a', 10, '12)' ; // 1212a12121
複製程式碼

3. 分解字串 在php中,字串的分解用explode,合併用implode(join是implode的別名),標記用strtok。還有另一個函數slipt也可以分解(正規分解),但5.3以後版本已經不推廣了。 另外php還有一個sscanf()函數,用來讀取字串。 strtok標記時,用strtok($str, $token)來初始化,用strtok($token)來繼續取值。 代碼:
  1. $str = '1,2,3';

  2. $arr1 = explode(',', $str) ; // array('1', '2', '3')
  3. $arr2 = explode(',', $str, 2); // array('1', '2,3')
  4. $str1 = implode(',', $arr1); // '1,2,3'

  5. $str2 = strtok($str, ' ,'); // 1

  6. $str3 = strtok(','); // 2
  7. $str4 = strtok(','); // 3
  8. / / array(86, 10, 88888888, 'beijin')

  9. $arr3 = sscanf(' 86(10)88888888 beijin', ' %d(%d)%d %s');
複製程式碼

4.字串查找 在php中,字串的查找有三個系列。傳回位置的、傳回字串的、掩碼個數匹配。其中,傳回位置的的函數一共有兩個,strpos()和strrpos();傳回字串的也有兩個strstr()和strchr();傳回掩碼匹配數的函數有strspn()和strcspn() 。 strpos表示從左邊開始計數,返回要尋找的字串第一次出現的位置;strrpos表示從右邊計數,返回要尋找的字串第一次出現的位置。 strstr表示從左邊計數,返回要查找字串第一次到結尾的子字串(包括查找字串),當查找的是字元時,可以用ascii碼數字來表示字元;stristr表示不區分大小查找;strchr是strstr的別名;strrchr傳回字元最後出現到結尾的子字串。 strspn表示從左邊計數,第一次出現非掩碼之前的子字串的字元數;strcspn表示從左邊計數,第一次出現掩碼之前的子字串的字元數。 代碼:

  1. $pos = strpos('this a hello world program', ' '); // 4

  2. $pos = strpos('this a hello world program', 32); // 4
  3. $pos = strrpos('this a hello world program', ' '); // 18

  4. $ pos = strrpos('this a hello world program', 32); // 18
  5. $str = strstr('this a hello world program', ' '); // " a hello world program"

  6. $str = strstr('this a hello world program', 32); // " a hello world program"
  7. $str = stristr('this a hello world program', ' a'); // "a hello world program"

  8. $str = stristr('this a hello world program', 65); // "a hello world program"
  9. $str = strrchr('this a hello world program', ' '); // " program"

  10. $str = strrchr('this a hello world program', 32); // " program"
  11. $str1 = "12345 12345 12345";

  12. $len = strspn($str1, '12345'); // 5
  13. $len = strcspn($strstr1, ' ); // 5
複製程式碼


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板