intanto $nomi è un array, l'indice devi usarlo, poi $nomi lo fai diventare $nome, e infine se te ne crea uno soltanto significa che il ciclo è sbagliato... infatti il punto e virgola dopo il foreach non ci va se sotto ci sono altre istruzioni.
Codice PHP:
<?php
$listaurl = "lista.txt";
$lista = file_get_contents($listaurl);
$nomi=explode("\n",$lista);
for($i=0; $i<sizeof($nomi); $i++){
$riscrivi_file=fopen("$nomi[$i].htm","w+");
fwrite($riscrivi_file, "<html><head></head><body>ciao io sono $nome</body></html>");
fclose($riscrivi_file);
}
?>
Soltanto non saprei come puoi gestire questa situazione:
Codice PHP:
fopen("$nomi[$i].htm","w+");

forse così?
Codice PHP:
open($nomi[$i].".htm","w+");
a me da errore...