PHP preg_replace three times with three different patterns? right or wrong?

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 );