Function preg_match() should not be used instead of str_*
janbarasek opened this issue · 0 comments
janbarasek commented
Hello,
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.
Thank you.