El que no me entiende eres tu -.- pero bueno... Supongamos que tenemos un archivo...
<!doctype html>
Podrías utilizar DOM para modificarlo,
<?php
$archivo = 'documentoHTML.html';
// Declaramos el DOM object.
$doc = new DOMDocument;
// Cargamos el archivo.
$doc->loadHTMLFile($archivo);
// Al final, queremos que lo ordene un poco.
$doc->formatOutput = true;
// Buscamos el elemento con id "mimenu"
$elemento = $doc->getElementById('mimenu');
// Creamos un nuevo li con contenido "Menu 5"
$nuevo = $doc->createElement('li','Menu 5');
// Agregamos el nuevo li al elemento
$elemento->appendChild($nuevo);
// Guardamos el archivo HTML
$doc->saveHTMLFile($archivo);
?>
Claro que esto agrega automáticamente el html,head y etc etc etc... así que tendrás que buscar una solución para que no interfiera con lo tuyo, en caso de que uses HTML5.
También puedes utilizar regex..
<?php
$archivo = 'documentoHTML.html';
function anadir_a_ul($nuevo=NULL,$id=NULL,$contenido){
// Extraemos el menu.
$menu = preg_match('/<ul id\=\"'.$id.'\">(.*)<\/ul>/imsu', $contenido,$result); if(!$menu){return false;}
// Declaramos el nuevo li.
$nuevo = "<li>".$nuevo."</li>\n";
// Lo añadimos detras del </ul> y quitamos todas las lineas blancas previas.
// reemplazamos el nuevo con el viejo
$final = preg_replace('/<ul id\=\"'.$id.'\">(.*)<\/ul>/imsu',$result,$contenido); return $final;
}
// Obener contenido del archivo.
// Procesar la funcion.
$contenido_nuevo = anadir_a_ul('Menu 5','mimenu',$contenido);
// Abrir archivo reemplazando su contenido.
$handle = fopen($archivo,'w+'); // Guardar nuevo contenido.
fwrite($handle,$contenido_nuevo); ?>
Lo que retornaría:
<!doctype html>
PD: Lo que has dicho de fwrite no es cierto. Mas que nada porque todo depende de con que propiedades abres el archivo. Si lo abres con a+ por ejemplo, si, escribirás en la ultima linea, pero si lo abres con r+ escribirás al principio.
PD2: Te estas complicando enormemente la vida y no entiendo porque. Imagínate que tienes que editar varios archivos... tendrías que ir modificandolos todos.. ademas ni siquiera sabes el peso que puede llegar a tener ese archivo.. eso es carga adicional INUTIL para PHP y para el servidor. Re-lee lo que te dije anteriormente es mucho mas fácil obtener el menu de otro archivo que tener que editar el html entero cada vez que quieres añadir uno nuevo.
Pero bueno... si estas empeñado en tener lo tuyo... ahí lo tienes.. espero que te sirva.
Saludos