il problema è che $parola è assegnata in un ciclo while tarmite each, che esce dal ciclo assegnandole un valore di false (in pratica al primo passaggio vale qualcosa, al secondo se c'è pure e così via fino all'ultimo in cui assegna "false" ed esce), tra l'altro vedo che potresti avere anche più termini, non uno solo, cambia:

Codice PHP:
$testo "$parola\n"
con:
Codice PHP:
$testo implode(', ',$keys)."\n"
che in pratica memorizza nel tuo "log" la lista delle parole chiave separandole con una virgola