Perchè non funziona sto semplice codice?
il file names.txt contiene un nome di file per ogni riga.

codice:
$names = file("names.txt");

$source = "source.pdf";

foreach($names as $nome){
	if (!copy($source, "data/".$nome)) {
	    echo "failed to copy $file...\n";
		}
	}
L'errore:
[function.copy]: failed to open stream: Invalid argument in ...

Se inserisco un nome singolo funziona regolarmente.