function intfix($value) {
$value = trim($value);
$value = preg_replace("/[^0-9](.*)$/", '', $value);
return $value+0;
}
此函数应该处理非常大的数字并删除任何非数字或返回0的内容。
echo intfix(123123123123123); // 1
疯狂的是它只在我的实时服务器上返回1,但在我的本地服务器上返回正确的数量。这是怎么回事?
答案 0 :(得分:3)
您只选择正则表达式中的第一个数字。
更改它:
preg_replace("/[^0-9]+/", '', $value);
答案 1 :(得分:3)
变化:
$value = preg_replace("/[^0-9](.*)/", '', $value);
要:
$value = preg_replace("/[^0-9]+/", '', $value);
出了什么问题?您选择了1个数字,而不是路径上的任何内容。什么都没有,所以你保留1号,因为它与数字不匹配,然后什么都不替换。
答案 2 :(得分:1)
$value = preg_replace("/^[^0-9]+$/", '', $value);