Как сделать 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 love petty
как это сделать? на самом деле, мне просто нужно это, если первая буква в верхнем регистре или все буквы в верхнем регистре.
вы используете явные жестко закодированные значения в вашем примере, поэтому проще всего использовать 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);
}
И теперь это будет просто заменено на случай. Немного подробный, возможно, и вам нужны жестко скопированные списки, но ваш вопрос казался довольно конкретным, а не спрашивал о "любом возможном слове" (в этом случае вам нужно будет использовать что-то вроде preg_replace_callback)