简介:这是php读写json文件的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=333686' scrolling='no'>PHP Simple Comments Read/Write jSon data to text file
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
1 2 3 4 5 |
/* 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/* 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
1 2 3 4 5 6 7 8 9 |
/* 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
1 2 3 4 5 6 7 |
<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 .