A simple question: Is this the best way to do it?
$pattern1 = "regexp1";
$pattern2 = "regexp2";
$pattern3 = "regexp3";
$content = preg_replace($pattern1, '', $content);
$content = preg_replace($pattern2, '', $content);
$content = preg_replace($pattern3, '', $content);
I have three search-patterns I want to filter out! Is my code above appropriate or is there a better way?
As you are replacing all with the same, you could do either pass an array
$content = preg_replace(array($pattern1,$pattern2, $pattern3), '', $content);
or create one expression:
$content = preg_replace('/regexp1|regexp2|regexp3/', '', $content);
If the "expressions" are actually pure character strings, use str_replace instead.
A very readable approach is to make an array with patterns and replacements, and then use array_keys and array_values in the preg_replace
$replace = [
   "1" => "one",
   "2" => "two",
   "3" => "three"
];
$content = preg_replace( array_keys( $replace ), array_values( $replace ), $content );
This even works with more complex patterns. The following code will replace 1, 2 and 3, and it will remove double spaces.
$replace = [
   "1"       => "one",
   "2"       => "two",
   "3"       => "three",
   "/ {2,}/" => " "
];
$content = preg_replace( array_keys( $replace ), array_values( $replace ), $content );
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With