So that's how it cooks:

1. Load the text file 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 = "
    "; /* loop all comments */ foreach( $commentsList['comments'] as $commentItem ){ // add comment to html list $commentsHTML.= "
  • " . $commentItem['text'] . "
  • "; } /* close html comments list */ $commentsHTML .= "
";

4. Then we add the HTML form and the list with comments

Comments?

I know simple but i thought to share it, you can get the source code on github.