Меняем расширение файла в PHP

<?php
function change_ext($string, $ext)
{
    $lines = preg_split('/[.]/', $string);
    $file_name = substr($string, 0, strlen($string) - strlen($lines[count($lines)-1]));
    $file_name = "$file_name$ext";
    return $file_name;
}>

Почему так? В данном случае — замена произойдет только после последней точки.