在之前的文章中我們介紹了一種字符串替換方法,該方法可以區(qū)分大小寫(xiě)的將給定子串替換成其他值,感興趣的可以點(diǎn)擊鏈接查閱→《PHP如何將給定子串換成*號(hào)(大小寫(xiě)敏感)》。這次我們給大家介紹替換字符串中給定子串的另一種方法,有需要的可以參考參考。
上文中我們介紹了使用str_replace()函數(shù)替換給定子串的方法,這種方法對(duì)大小寫(xiě)敏感(即區(qū)分大小寫(xiě)),只要字符串中有一個(gè)字符的大小寫(xiě)不符合要求,和給定子串無(wú)法完全相同,那么就不會(huì)進(jìn)行替換。
但有時(shí)進(jìn)行字符串替換時(shí),不需要那么嚴(yán)格,可以忽略字符的大小寫(xiě)問(wèn)題。今天我們就來(lái)介紹一下對(duì)替換字符大小寫(xiě)不敏感的方法。
我們來(lái)看看下面這個(gè)例子:
<?php $str = 'hello,world,Hello,World'; $replace = '*'; $search1 = 'hello'; $search2 = 'world'; echo str_ireplace($search1, $replace, $str)."<br>"; echo str_ireplace($search2, $replace, $str)."<br>"; ?>
觀察一下上面的代碼,我們需要將$str字符串“hello,world,Hello,World
”中的“hello
”和“world
”子串替換成*
號(hào)。但$str字符串中符合要求的有兩種:一種是完全匹配(大小寫(xiě)一致)的子串,一種是不完全匹配(大小寫(xiě)不一致)的。
但因?yàn)槲覀兪褂玫氖莝tr_ireplace()函數(shù),該函數(shù)可以忽略大小寫(xiě),因此會(huì)將字符串$str中符合要求的兩種子串“hello”和“Hello”、“world”和“World”,都替換為*號(hào)。所以輸出結(jié)果為:
是不是很簡(jiǎn)單,下面我們來(lái)了解一下這個(gè)str_ireplace()函數(shù)。
str_ireplace($search,$replace,$string,$count)
函數(shù)可以忽略大小寫(xiě)的替換字符串中的一些字符,該函數(shù)接受的參數(shù)和str_replace()函數(shù)一樣,前3個(gè)參數(shù)是必需的(不可省略),后一個(gè)參數(shù)$count
是可省略的(但設(shè)置了,可以獲取替換次數(shù))。
參數(shù)$count
可以接受一個(gè)變量,用來(lái)對(duì)替換數(shù)進(jìn)行計(jì)數(shù);如果設(shè)置了該參數(shù),就可以知道一共執(zhí)行了幾次替換。
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $str = 'hello,world,Hello,World'; $replace = '*'; $search1 = 'hello'; $search2 = 'world'; echo str_ireplace($search1, $replace, $str, $i)."<br>"; echo "一共執(zhí)行了 $i"." 次替換<br><br>"; echo str_ireplace($search2, $replace, $str, $i)."<br>"; echo "一共執(zhí)行了 $i"." 次替換<br><br>"; ?>
輸出結(jié)果:
說(shuō)明:
因?yàn)閟tr_ireplace()和str_replace()函數(shù)都是直接給出需要替換的子串,所以這兩個(gè)函數(shù)都可以用來(lái)替換中文字符。
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $str = '你好,歡迎來(lái)到這里!'; $replace = '*'; $search1 = '你好'; $search2 = '歡迎'; echo str_ireplace($search1, $replace, $str)."<br>"; echo str_replace($search2, $replace, $str)."<br>"; ?>
輸出結(jié)果:
在純中文字符串是差不多的,但在中英混合的字符串,因?yàn)闀?huì)區(qū)分大小寫(xiě),可以根據(jù)需求來(lái)選擇使用哪個(gè)。
<?php header("Content-Type: text/html;charset=utf-8"); //設(shè)置字符編碼 $str = '你好,歡迎來(lái)到PHP中文網(wǎng)!'; $replace = '這里'; $search1 = 'PHP中文網(wǎng)'; $search2 = 'php中文網(wǎng)'; echo str_ireplace($search1, $replace, $str)."<br>"; echo str_replace($search2, $replace, $str)."<br>"; ?>
輸出結(jié)果:
好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程
最后給大家推薦閱讀一個(gè)經(jīng)典課程《PHP字符串處理(玉女心經(jīng)版)》,免費(fèi)的~快來(lái)學(xué)習(xí)??!