首頁 > 後端開發 > php教程 > photoshop學習網 PHP學習之字串比較與查找

photoshop學習網 PHP學習之字串比較與查找

WBOY
發布: 2016-07-29 08:44:47
原創
1185 人瀏覽過

1. 字串比較
在PHP中,可以用==(雙等號)或 ===(三等號)來比較字串。兩者的區別是雙等號不比較類型,三等號會比較類型,它不轉換類型;用雙等號比較時,如果等號左右兩邊有數字類型的值,剛會把另一個值轉換為數字,然後進行比較。這樣的話,如果是純字串或NULL時,會轉換成0進行比較。同樣,大小於號也和等號一樣,比較時可能會出現不正確的結果。
所以,比較字串可以用PHP的自帶函數strcmp和strcasecmp。其中strcasecmp是strcmp的變種,它會先把字串轉換成小寫再進行比較。 如下程式碼:

複製程式碼 程式碼如下:


var_dump(0 == 'Test');

var_dump(0 == 'Test');
var_dump( 0 == '');
var_dump(5 > 'T');

var_dump(strcmp(5, 'T'));

結果為(第1~3結果是不對的,只有第4個是對的): 複製程式碼

程式碼如下:


bool(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);
傳回一個重複的字元串。
5. 填充字串
$newstring = str_pad(to_pad, length[, with[, type]]);

其中type有:STR_PAD_RIGHT(預設)、STR_PAD_LEFT和STR_PAD_BOTHd空格。函數表示把to_pad字串用with填充為一個長度為length的字串。 如下程式碼: 複製程式碼

程式碼如下:


// 子字串
var_dump(substr('12345678989 8)); // 90
var_dump(substr('1234567890', 0, 2)); // 12
// 反方向子字串
var_dump(substr('1234567890', -8) ); // 34567890
var_dump(substr('1234567890', -8, -2)); // 345678
var_dump(substr('1234567890', -🎜>var_dump(substr('1234567890', -🎜>var_dump(substr('1234567890', - -8, 2); >// 插入
var_dump(substr_replace('1234567890', 'a', 0, 0)); // a1234567890
// 刪除
var_dump(substr_replace('12345678),'567 ); // 12345678
// 反方向刪除
var_dump(substr_replace('1234567890', '', -2, -1)); // 123456780
//subplaced ('1234567890', 'a', 0, 1)); // a234567890
// 反方向替換
var_dump(substr_replace('1234567890', 'a', -2, -1)); / / 12345678a0
// 字串反轉
var_dump(strrev('1234567890')); // 0987654321
// 重複字串
var_dump(streat(3); // 121212
// 填入字串
var_dump(str_pad('a', 10, '12')); // a121212121
var_dump(str_pad('a', 10, '12', STR_PAD_LEFT)); // 121212121a
var_dump(str_pad('a', 10, '12', STR_PAD_BOTH)); // 1212a12121


strtok標記時,用strtok($str, $token)來初始化,用strtok($token)來繼續取值。
程式碼如下:

複製程式碼 程式碼如下:

$str = '1,2,3';
$arr1 = explode(',', $str); // array('1', '2', '3')
$arr2 = explode(',', $str, 2); / / array('1', '2,3')
$str1 = implode(',', $arr1); // '1,2,3'
$str2 = strtok($str, ' ,'); // 1
$str3 = strtok(','); // 2
$str4 = strtok(','); // 3
// array(86, 10, 88888888, 'Beijin')
$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表示從左邊計數,第一次出現掩碼之前的子字串的字元數。
範例程式碼:

複製程式碼 程式碼如下:


$pos = strpos('This a hello world program', ' '); // 4
$pos = strpos('This a hello world program', 32); // 4
$pos = strrpos('This a hello world program', ' '); // 18
$pos = strrpos('This a hello world program', 32); // 18
$str = strstr ('This a hello world program', ' '); // " a hello world program"
$str = strstr('This a hello world program', 32); // " a hello world program"
$str = stristr('This a hello world program', ' A'); // "a hello world program"
$str = stristr('This a hello world program', 65); // "a hello world program"
$str = strrchr('This a hello world program', ' '); // " program"
$str = strrchr('This a hello world program', 32); // " program"
$str1 = "12345 12345 12345";
$len = strspn($str1, '12345'); // 5
$len = strcspn($str1, ' '); / 5


參考資料: PHP程式設計,2003,第四章字串,字串比較;字串尋找和處理

以上就介紹了photoshop學習網 PHP學習之字串比較和查找,包括了photoshop學習網方面的內容,希望對PHP教程有興趣的朋友有所幫助。

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