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