天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP學(xué)習(xí)之字符串比較和查找

1. 字符串比較
php中,可以用==(雙等號(hào))或者 ===(三等號(hào))來比較字符串。兩者的區(qū)別是雙等號(hào)不比較類型,三等號(hào)會(huì)比較類型,它不轉(zhuǎn)換類型;用雙等號(hào)進(jìn)行比較時(shí),如果等號(hào)左右兩邊有數(shù)字類型的值,剛會(huì)把另一個(gè)值轉(zhuǎn)化為數(shù)字,然后進(jìn)行比較。這樣的話,如果是純字符串或者NULL時(shí),會(huì)轉(zhuǎn)化為0進(jìn)行比較。同樣,大小于號(hào)也和等號(hào)一樣,比較時(shí)可能出現(xiàn)不正確的結(jié)果。
所以,比較字符串可以用php的自帶函數(shù)strcmp和strcasecmp。其中strcasecmp是strcmp的變種,它會(huì)先把字符串轉(zhuǎn)化為小寫再進(jìn)行比較。 如下代碼:
復(fù)制代碼 代碼如下:
var_dump(0 == 'Test');
var_dump(0 == '');
var_dump(5 > 'T');
var_dump(strcmp(5, 'T'));

結(jié)果為(第1~3結(jié)果是不對(duì)的,只有第4個(gè)是對(duì)的):
復(fù)制代碼 代碼如下:
bool(true)
bool(true)
bool(true)
int(-1)

2. 字符串處理
1. 子串
$sub = substr(string, start[, length]);
2. 子串替換
$newstring = substr_replace(string, new, start[, length]);
用這個(gè)函數(shù)可以實(shí)現(xiàn)字符串的插入,刪除操作。這個(gè)函數(shù)的start和length可以為負(fù)數(shù)。分別表示從后開始計(jì)算以及保留最后幾位不替換。 3. 字符串反序
$newstring = strrev(string);
4. 重復(fù)字符串
$newstring = str_repeat(string, count);
返回一個(gè)重復(fù)count次string的新字符串。
5. 填充字符串
$newstring = str_pad(to_pad, length[, with[, type]]);
其中type有:STR_PAD_RIGHT(默認(rèn))、STR_PAD_LEFT和STR_PAD_BOTH三種;with默認(rèn)為空格。函數(shù)表示把to_pad字符串用with填充為一個(gè)長(zhǎng)度為length的字符串。 如下代碼:
復(fù)制代碼 代碼如下:
// 子串
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
// 字符串反轉(zhuǎn)
var_dump(strrev('1234567890')); // 0987654321
// 重復(fù)字符串
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的別名),標(biāo)記用strtok。還有另一個(gè)函數(shù)slipt也可以分解(正則分解),但5.3以后版本已經(jīng)不推介了。 另外php中還有一個(gè)sscanf()函數(shù),用于讀取字符串。
strtok標(biāo)記時(shí),用strtok($str, $token)來初始化,用strtok($token)來繼續(xù)取值。
代碼如下:
復(fù)制代碼 代碼如下:
$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中,字符串的查找有三個(gè)系列。返回位置的、返回字符串的、掩碼個(gè)數(shù)匹配。其中,返回位置的的函數(shù)一共有兩個(gè),strpos()和 strrpos();返回字符串的也有兩個(gè)strstr()和strchr();返回掩碼匹配數(shù)的函數(shù)有strspn()和strcspn()。
strpos表示從左邊開始計(jì)數(shù),返回要查找的字符串第一次出現(xiàn)的位置;strrpos表示從右邊計(jì)數(shù),返回要查找的字符串第一次出現(xiàn)的位置。
strstr表示從左邊計(jì)數(shù),返回要查找字符串第一次到結(jié)尾的子串(包括查找字符串),當(dāng)查找的是字符時(shí),可以用ascii碼數(shù)字來表示字符;stristr表示不區(qū)分大小查找;strchr是strstr的別名;strrchr返回字符最后出現(xiàn)到結(jié)尾的子串。
strspn表示從左邊計(jì)數(shù),第一次出現(xiàn)非掩碼之前的子串的字符數(shù);strcspn表示從左邊計(jì)數(shù),第一次出現(xiàn)掩碼之前的子串的字符數(shù)。
示例代碼:
復(fù)制代碼 代碼如下:
$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程序設(shè)計(jì),2003,第四章 字符串,字符串比較;字符串查找和處理

php技術(shù)PHP學(xué)習(xí)之字符串比較和查找,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美日韩一区在线观看 | 久久婷婷五月免费综合色啪 | 国产欧美一区二区三区免费 | 成年黄网站免费大全毛片 | 色窝窝亚洲AV在线观看 | 亚洲精品国产乱码AV在线观看 | 九九99国产香蕉视频 | 亚洲 日本 天堂 国产 在线 | 中文字幕乱码亚洲无线三区 | 97精品国产亚洲AV高清 | 亚洲AV无码专区国产精品99 | 国精产品一区二区三区有限公司 | 琪琪电影午夜理论片YY6080 | 少妇高潮A片特黄久久精品网 | 欧美日韩国产高清综合二区 | 九九色精品国偷自产视频 | 少妇大荫蒂毛多毛大 | 在线观看免费国产成人软件 | 亚洲精品电影久久久影院 | 久久综合网久久综合 | 99无人区码一码二码三 | 又长又大又粗又硬3p免费视频 | 日本不卡不码高清免费 | 欧美一区二区三区播放 | 中文字幕无码A片久久 | 久久国产乱子伦免费精品 | 超级碰碰青草久热国产 | 国产呦精品一区二区三区下载 | 亚洲精品乱码一区二区三区 | 嫩草影院久久国产精品 | 九九久久精品国产 | 欧美日韩国产在线一区二区 | jizzhd中国| 吉吉av电影 | 里番※琉璃全彩acg奈亚子 | 肉动漫h黄动漫日本免费观看 | 免费在线观看的毛片 | 影音先锋av丝袜天堂 | 一色屋精品亚洲香蕉网站 | 99热这里只有是精品 | 麻豆三级电影 |