なぜこのコードは
$my_replacements = array("my dog", "doga");
$my_string = "doga my dog test";
$my_patterns = array_map(function($my_text) { return "/(^|[\n\r\f\t \.\,])" . trim($my_text) . "([\n\r\f\t \.\,]|$)/iu"; }, $my_replacements);
$replaced_string = preg_replace($my_patterns, '', $my_string);
echo $replaced_string;
?dogatest
の代わりに戻るtest
しかし、my_stringがに変更された場合、my_replacements"my dog doga test"
の両方の要素が正しく置き換えられますか?
私が達成したいのは、文字列が与えられたら、$ my_replacementsにあるすべての文字列を見つけて、それらを文字列から削除することです。/u修飾子と/i修飾子またはpreg_replaceを考慮に入れます。これは、サブストリングが大文字である可能性があり、どちらの方法でも削除する必要があるためです。