Debes usar comillas dobles donde se necesiten y completar estrictamente los tag's HTML como corresponda ..
En el URL .. si empleas códigos como \ .. comillas .. espacios .. etc peude darte problemas .. Para solventarlo usa la función urlencode() para codificar el URL antes de pasar ese dato de tu variable al script que lo procese y la función contraria urldecode() donde la recibas.
Para el tema de las comillas .. mejor usar en conjunto con la otra función stripslashes() (al recibir tu variable .. si es que corresponde) .. Para verlo mejor . .hazte un echo a tu $opcion1 y mira que recibes ahí.
Código PHP:
echo "<td width=\"100%\" style=\"border-style: none; border-width: medium\"><A HREF=\"abrirfichero.php?opcion1= urlencode($atributo[$j])\">$atributo[$k]</a></td>";
echo "</tr>";
Y en tu script que abre el archivo . .aplicas el urldecode()
Código PHP:
<?
$opcion1=urldecode(stripslashes($_GET['opcion1']));
$fichero= fopen($opcion1, 'a+') or die ('esto no funciona');
while(!feof($fichero)){
$buffer= fgets($fichero, 4096);
echo "$buffer ";
}
fclose($fichero);
?>
El uso de los arrays superglobales $_GET (etc) deberías usarlo (lee las FAQ's para ver el tema este).
Un saludo,