php读写json文件
A few days ago i had to build a simple comment form. First i thought about MYSQL etc, but this all seems to be too complicated. So i came up with a simple solution based on jSon and a TXT file.
So that’s how it cooks:
1. Load the text file with the comments and convert it to an array with json_decode
12345
/* 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.
12345678910111213141516171819
/* 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
123456789
/* 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
1234567
<form id="comments" method="POST"><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?></form>
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.