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