2015-09-20 281 views
1

我試圖用它們突出顯示的等效字符替換一串字母,並且仍然使它們與該文件的大小寫匹配。用str_ireplace代替文件中的字符串替換字符串

假設我的搜索查詢「很好」,並且文本文件包含「PDPFOW NICE PF」。我的str_ireplace成功將文件中的「NICE」更改爲突出顯示的「nice」,但是,正如您所看到的,它不再具有它最初在文件中的情況。

我不能使用strtoupper/strtolower的文件可能包含多種情況,而將原本是「PdpFOW 尼斯 PF」,我會需要突出顯示的版本是「好」。

我已經看過this stackoverflow question但它不幫助我。

那麼,我將如何保持匹配的文件字符串的情況?

回答

0

您可以使用preg_replace(),打開不區分大小寫的標誌i,然後返回匹配。以下是使用測試用例並用星號突出顯示的基本示例。

$text1 = "PDPFOWNICEPF"; 
$text2 = "PdpFOWnIcEPF"; 
$search = "/nice/i"; 

echo preg_replace($search, "*$0*", $text1); 
// PDPFOW*NICE*PF 
echo preg_replace($search, "*$0*", $text2); 
// PdpFOW*nIcE*PF 
+0

嗯...這不適合我。在這裏,我有:'preg_replace(「/ $ explodePrimArgs [0]/i」,「\ 033 [43m」。「$ explodePrimArgs [0]」。「\ 033 [0m」,$ secondaryArgContents);' – ButterMyBitter

+0

它看起來像這樣:''preg_replace(「/ {$ explodePrimArgs [0]}/i」,「\ 033 [43m $ 0 \ 033 [0m」,$ secondaryArgContents);''或類似的(我不知道你的應用程序,所以我無法確定)。你需要花括號來獲取一個字符串中數組的內容,而在第二個參數中,你需要像上面例子中那樣用反向引用'$ 0'來替換。 –