Hola,
¿Y hay alguna caracteristica especial en el nombre de los ficheros en los que falla el? Porque tal como lo tienes, si el nombre del fichero tiene un espacio, falla. Porque en HTML los valores de los atributos de las etiquetas deben ir entre comillas:
Código PHP:
echo "<a href=\"".$leer."\">".$leer."</a> <br>\n"; // conversion a link
Tambien seria recomendable que revisases la funcion urlencode() (
www.php.net/urlencode).
Saludos.