我需要从数据库中提取数字(非常有限制的输入),这些数字在前后会有下划线。它们存储的方式如下:
_51_ _356_
它们不会以任何其他格式存储,但有时我需要仅提取其中的数字。我选择使用以下之一:
$x = filter_var($myNumber, FILTER_SANITIZE_NUMBER_INT);
或者
$y = preg_replace("/[^0-9]/","",$myNumber);
我不确定后端两者之间的区别,但它们都可以生成我需要的内容(至少我认为是这样),所以对我来说使用哪个并不重要。使用每个选项的优缺点是什么?(例如,是否使用数组或其他我可能需要了解的奇怪东西?其中一个使用了过多资源?)
FILTER_SANITIZE_NUMBER_INT
只做它所说的事情。preg
是一个完整的正则表达式引擎,你只使用了其中的一小部分功能。其中一种可能比另一种更有效,但唯有通过基准测试才能确认。 - deceze