Очевидно, невозможно воспроизвести функцию (int)
точно для 64-разрядных чисел в 32-разрядной системе. (int) возвращает int; лучшее, что вы можете сделать в 32-битной системе для 64-битных чисел, это вернуть строку - но, по-видимому, это действительно то, что вы просите.
Как указал tialaramex, если вы собираетесь много работать с 64-битными целыми числами, вы должны запустить 64-битный PHP. Если это не вариант, вы можете выполнить некоторую работу, используя функции bcmath - хотя я не вижу функции bcmath для выполнения того, что вы просили.
Я бы просто написал быструю и грязную функцию:
<?php
var_dump(toint("12312342306A_C243"));
function toint($str) {
return preg_match('/^[0-9]+/', $str, $matches) ? $matches[0] : 0;
}