一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP學習之字符串比較和查找

PHP學習之字符串比較和查找

2019-11-21 13:51PHP教程網 PHP教程

在PHP中,可以用==(雙等號)或者 ===(三等號)來比較字符串。

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

復制代碼代碼如下:


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); 
返回一個重復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的字符串。 如下代碼: 

復制代碼代碼如下:


// 子串 
var_dump(substr('1234567890', 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', -8, 2)); // 34 
// 插入 
var_dump(substr_replace('1234567890', 'a', 0, 0)); // a1234567890 
// 刪除 
var_dump(substr_replace('1234567890', '', 8)); // 12345678 
// 反方向刪除 
var_dump(substr_replace('1234567890', '', -2, -1)); // 123456780 
// 替換 
var_dump(substr_replace('1234567890', 'a', 0, 1)); // a234567890 
// 反方向替換 
var_dump(substr_replace('1234567890', 'a', -2, -1)); // 12345678a0 
// 字符串反轉 
var_dump(strrev('1234567890')); // 0987654321 
// 重復字符串 
var_dump(str_repeat('12', 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 


3. 分解字符串 
在PHP中,字符串的分解用explode,合并用implode(join是implode的別名),標記用strtok。還有另一個函數slipt也可以分解(正則分解),但5.3以后版本已經不推介了。 另外PHP中還有一個sscanf()函數,用于讀取字符串。 
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,第四章 字符串,字符串比較;字符串查找和處理

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费欧美一级 | 91精品久久一区二区三区 | 国产香蕉97碰碰久久人人 | 婷婷精品| 日本人泡妞xxxxxx69 | 成年人免费观看视频网站 | 男女做污事 | 咪咪爱网友自拍 | 青草视频网站 | 欧美无专区 | 国产精品成人在线播放 | 91av免费在线观看 | 国产高清免费在线 | 毛片网站观看 | 大学生宿舍飞机 free | 欧美亚洲国产精品久久久 | 免费观看在线 | 国产精品国语自产拍在线观看 | 日日艹| 好大好硬好湿好紧h | x8x8在线观看免费 | 美女福利网站 | 免费老外的毛片清高 | 男人的天堂视频 | 国产精品免费_区二区三区观看 | 免费观看视频在线播放 | 国产欧美一区二区三区免费 | 视频一区二区三区欧美日韩 | 无人视频在线观看完整版高清 | 欧美xxoo黑人又粗暴 | 免费看男女污污完整版 | 大好硬好深好爽想要视频 | 男女乱淫真视频播放网站 | 麻豆最新 | 亚洲精品一区二区久久这里 | 欧亚专线欧洲m码可遇不可求 | 国内精品久久久久影院嫩草 | 日本黄大片影院一区二区 | 欧美精品久久久亚洲 | 动漫美女3d被爆漫画 | 国产3344视频在线观看免费 |