Encabezado http para descargar archivos de Microsoft Word y Excel

Puedo descargar mi palabra de Microsoft con éxito si la nombré en el nombre de archivo por defecto. Pero si uso $ variables para nombrarlo. La extensión del documento será desconocida.

Muestra:

$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);

Así que si renombro mi nombre de archivo como variables. La descarga del archivo será sin la extensión docx. ¿Alguien puede aconsejar?

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta