Я работаю над проектом, где у меня есть строка с содержимым, например. $content
и массив со словами (без капителей), например. $rewrites
.Замена заглавной и некапитализированной строки с preg_replace
То, что я хочу достичь, например, случай:
$content
содержит строку со следующим текстом: "Яблоки множественного яблока, яблоки вкусные.
$rewrites
содержит массив со следующими данными: «яблоко», «голубика».
Теперь я хочу создать функцию, которая заменяет все яблоки на что-то еще, например. малина. Но в строке есть Яблоки, которые не будут заменены с помощью preg_replace
. Яблоки следует заменить малиной (упомянуть столицу R).
Я пробовал разные методы и шаблоны, но это не сработает.
В настоящее время у меня есть следующий код
foreach($rewrites as $rewrite){
if(sp_match_string($rewrite->name, $content) && !in_array($rewrite->name, $spins) && $rewrite->name != $key){
/* Replace the found parameter in the text */
$content = str_replace($rewrite->name, $key, $content);
/* Register the spin */
$spins[] = $key;
}
}
function sp_match_string($needle, $haystack) {
if (preg_match("/\b$needle\b/i", $haystack)) {
return true;
}
return false;
}
могли бы вы просто добавить 'Apple', 'Blueberry' в файл 'массив rewrites' $? – BizzyBob
@BizzyBob Нет, это невозможно. Поскольку, если я добавлю их в массив, я не знаю, нужно ли мне заменить его заглавным словом или нет. – Chiel
Я говорю поиск в верхнем регистре и замену в верхнем регистре. искать строчные буквы и заменять строчными буквами. – BizzyBob