Как следует из моего комментария выше, это зависит от того, что вы считаете именем файла как имя и каково расширение.
все до последней точки:
$filename = 'some.file.name.zip';
$name = substr($filename, 0, strrpos($filename, '.'));
все до первой точки:
$filename = 'some.file.name.zip';
$name = substr($filename, 0, strpos($filename, '.'));
они выглядят одинаково, но первая ищет первую точку от конца строки и вторую от начала строки.