grazie a entrambi per l'aiuto, ma il problema non è risolto.
poichè le funzioni da voi consigliate non presentano errori (in quanto testate e ritestate), il problema ovviamente continua a essere nel mio codice.
per togliermi ogni dubbio ho creato questa pagina
Codice PHP:
<?php
echo "<a href=\"?file=poba.zzz\"> Clicca qua per salvare il file txt</a>";
if(isset($file)) force_download($file, "nomefile.txt");
function force_download($File, $OPZNomeFile)
{
$dim = filesize($File);
// Posso forzare un nome diverso da per il file da inviare al browser
if ($OPZNomeFile=="") $NomeFile = substr($File,strrpos($File,"/")+1,strlen($File));
else $NomeFile = $OPZNomeFile;
$estensione = strtolower(substr($NomeFile,strrpos($NomeFile,".")+1,strlen($File)));
if ($estensione == "pdf") $apptype = "application/pdf";
else if ($estensione == "zip") $apptype = "application";
else $apptype = "application/force-download";
// Forza il download via HTTP + APERTURA
header("Content-Type: ".$apptype."; name=".$NomeFile);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$dim);
header("Content-Disposition: attachment; filename=".$NomeFile);
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: private");
header("Pragma: public");
readfile($File);
exit(0);
}
?>
ed ecco il risultato che ottengo nel file che viene scaricato

ovvero pare che salvi in un nuovo txt nel desktop prima il codice della pagina, e solo dopo il contenuto del file txt
:master: :master:
voi che ci capite ? dove sta l'errore ?
PS: ho provato indistintamente le due funzioni, sia quella sopra postata, che l'altra da voi consigliata .. ottenendo sempre lo stesso identico risultato ...