Oczywiście, możesz użyć fopen

Ale jest to dość niewygodne - przed otwarciem pliku przydało by się sprawdzić czy istnieje(file_exists()) następnie otworzyć z ODPOWIEDNIM parametrem (drugi parametr np. 'a') zapisać i zamknąć. W przypadku file_get|put_contents nie pilnujesz parametru, nie otwierasz i nie zamykasz pliku. Jedną funkcją (file_get_contents), możesz sprawdzić czy plik nie jest pusty (stąd !== FALSE) oraz wczytać jego zawartość do zmiennej.
Po prostu jest to bardziej wygodne podejście a przy moim trybie pracy gdzie coś trzeba napisać na wczoraj nie mam czasu na zastanawianie się czy 'w+' czy 'a' i czy wszystkie pliki pozamykałem

Co do nadpisywania:
$string_wyjsciowy = $content . $ciagWyjsciowy; //$content przechowuje zawartość pliku plik.txt
file_put_contents($file_path, $string_wyjsciowy);