Cabeçalho http para download de arquivos do Microsoft Word e Excel

Eu posso baixar minha palavra microsoft com sucesso se eu nomeá-lo no nome do arquivo por padrão. Mas se eu usar $ variáveis ​​para nomeá-lo. A extensão do documento será desconhecida.

Amostra:

$No = 1; 
$Name = 'John'; 
$Test = 'Science';

//Download header
$document->save($doc);
header('Content-Description: File Transfer');
header('Content-Type: application/msword');
header("Content-Disposition: attachment; filename='$No_$Name_$Test.docx");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($doc));
ob_clean();
flush();
readfile($doc);

Então, se eu renomear meu nome de arquivo como variáveis. O download do arquivo será sem a extensão docx. Alguém pode aconselhar?

obrigado

questionAnswers(3)

yourAnswerToTheQuestion