如何使str_ireplace与小写和大写相同。 例子
$letters = array('jonny', 'gennie');
$fruit = array('ponny', 'petty');
$text = 'JONNY love Gennie';
$output = str_ireplace($letters, $fruit, $text);
echo $output;
所以实际输出是:
ponny love petty
但我想这样
PONNY爱小资
怎么做?实际上我只需要它,如果第一个字母是大写或所有字母都是大写。
答案 0 :(得分:0)
您在示例中使用了明确的硬编码值,因此最简单的方法是使用str_replace
代替str_ireplace
,并为小写和大写字符串替换执行传递。你可以简单地从小写数组中构建大写和句子数组,然后你甚至不需要做任何工作:
$find_lc = array('moo', 'cow', 'something');
$find_uc = array_map('str_to_upper', $array);
$find_sc = array_map('ucfirst', $array);
$searches = array($find_lc, $find_uc, $find_sc);
$replace_lc = array(...);
$replace_uc = array(...);
$replace_sc = array(...);
$replacements = array($replace_lc, $replace_uc, $replace_sc);
$converted = $input;
for($i=0; $i<count($searches); $i++) {
$converted = str_replace($searches[$i], $replacements[$i], $converted);
}
现在它只是被正确替换了。或许有点冗长,你需要硬编码列表,但你的问题似乎非常具体,而不是询问&#34;任何可能的单词&#34; (在这种情况下,您需要使用preg_replace_callback)
之类的东西