Check out the example page or download source code. So that’s how it cooks: 1. Load the text file with the comments and convert it to an array with json_decode
/* get comments from file */
$commentsText = file_get_contents('comments.txt');

/* create array list from comments */
$commentsList = json_decode($commentsText,true);
2. Check if a new comment was posted and save to file when valid.
/* check if new comment is posted and minimum 3 characters are set */
if( !empty($_POST['comment']) && strlen($sComment) > 3 ){

        /* get posted comment and remove all HTML */
        $sComment = strip_tags($_POST['comment']);

        /* add comment, client IP and date to array */
        $commentsList['comments'][] = array(
                'text' => $sComment,
                'ip' => $_SERVER['REMOTE_ADDR'],
                'date' => time()
        );

        /* convert comments to string */
        $commentsText = json_encode($commentsList);

        /* save comment to file */
        file_put_contents($commentsFile, $commentsText);
}
3. Then we can loop the comment list and create HTML for the output
/* create html list */
$commentsHTML = "<ul>";
/* loop all comments */
foreach( $commentsList['comments'] as $commentItem ){
        // add comment to html list
        $commentsHTML.= "<li>" . $commentItem['text'] . "</li>";
}
/* close html comments list */
$commentsHTML .= "</ul>";
4. Then we add the HTML form and the list with comments
<form id="comments" method="POST"> <h1>Comments?</h2> <div><?=$errorMessage?></div> <textarea id="comment" name="comment" cols="70"> </textarea><br/> <input type="submit" value="yes" /> <?=$commentsHTML?>
I know simple but i thought to share it, you can download the full example including sorting and some more validation stuff, or check out the example page.