Ho fatto questa prova:

Input: l'albero è alto

Script PHP:

codice:
<?php

$str=$_GET['testo'];
$str=htmlentities($str,ENT_QUOTES);
print("$str");

?>
Output: Viene stampata a video la stringa: l'albero è alto

Giusto.

Poi.

Input: l'albero è alto

Script PHP:

codice:
<?php

$str=$_GET['testo'];
$str=htmlentities($str,ENT_QUOTES);
$fp=fopen("prova.txt","w");
fputs($fp,$str);
fclose($fp);

?>
Output: nel file "prova.txt" è presente la stringa: l & # 0 3 9 ;albero & e g r a v e ; alto

Perchè nella stampa la stringa in uscita è giusta mentre nell'inserimento all'interno di un file di testo tale stringa non viene inserita in modo corretto?