PHP - remove a extensão de um nome de arquivo string

Desejo remover a extensão de um nome de arquivo e obter o nome do arquivo - por exemplo file.xml -> arquivo, image.jpeg -> imagem, test.march.txt -> test.march, etc.

Então eu escrevi esta função

function strip_extension($filename) {
   $dotpos = strrpos($filename, ".");
   if ($dotpos === false) {
      $result = $filename;
   }
   else {
      $result = substr($filename,0,$dotpos);
   }
   return $result;
}

Que retorna uma string vazia.

Não consigo ver o que estou fazendo de errado?

questionAnswers(6)

yourAnswerToTheQuestion