I think the preg_match() function should not be used instead of the native str_* functions (PHP 8+).
Example:
if (preg_match('/\.\./', $path) === 1) { // bad, better is str_contains()
throw new \InvalidArgumentException('Path "' . $path . '" could not contains \'..\'.');
}
This rule should apply to cases where the first argument to preg_match() is a string literal and also contains a string of ordinary characters that have no special meaning or have been escaped correctly (the string may be a valid input for str_*).
This improvement may help to better detect old places that are better to refactor.
Hello,
I think the
preg_match()
function should not be used instead of the nativestr_*
functions (PHP 8+).Example:
This rule should apply to cases where the first argument to
preg_match()
is astring literal
and also contains a string of ordinary characters that have no special meaning or have been escaped correctly (the string may be a valid input forstr_*
).This improvement may help to better detect old places that are better to refactor.
Thank you.