<?php
$text = 'The refugee said "dam!"';
$bad_words = array("fug","schnitt","dam");
$bad_words = array_walk($bad_words, function($value, $key) { // this prepares the regex, requires PHP 5.3+ I think.
return preg_quote('~\b' . $value . '\b~i'); // \b means word boundary, like space, line-break, and I think period, dash, and many others. Prevends "refudgee" from being matched when searching for "fudge"
});
$good_words = array("fudge","shoot","dang");
$good_text = preg_replace($bad_words,$good_words,$text);
Fatal error: Uncaught TypeError: preg_replace(): Argument #1 ($pattern) must be of type array when argument #2 ($replacement) is an array, string given in /in/khT6j:12
Stack trace:
#0 /in/khT6j(12): preg_replace('1', Array, 'The refugee sai...')
#1 {main}
thrown in /in/khT6j on line 12
Process exited with code 255.