Notei que cada vez que rodava o código de exemplo através do botão no html ele apresentava a página que o php gerava vazio, e também que sempre reescrevia totalmente o arquivo, como não sei se existe um parâmetro de append para o file_put_contents, tentei através do código abaixo fazer esse apend na mão, mas queria saber como fazer ele da maneira correta. Também adicionei uma mensagem de retorno.
<?php
#variavel que recebe os dados de uma mensagem http pelo método post
$filme_post = [
'nome' => $_POST['nome'],
'anoLancamento' => $_POST['ano'],
'nota' => $_POST['nota'],
'genero' => $_POST['genero'],
];
$caminhoArquivo = __DIR__ . '/filme.json';
$conteudoArquivoFilme = file_get_contents ($caminhoArquivo);
$filme = json_decode($conteudoArquivoFilme, true);
array_push($filme,$filme_post);
file_put_contents($caminhoArquivo,json_encode($filme));
echo 'enviado com sucesso';