用file_get_contents()和file_put_contents()向txt文档中存取数组

      举例说明,比如我们现在有这样的需求:学生给老师投票,老师的名字作为键,对应的值为给此老师投票的学生名字,多个学生名字间用“,”分隔,将所得数组序列化写入txt文档,下次投票的时候从txt文档中读出字符串再反序列化成数组,继续添加。

$teacher='王老师'; $student='李明'; if (file_exists('ballot.txt')){ $readArray = unserialize(file_get_contents('ballot.txt')); if (array_key_exists($teacher,$readArray)){ $studentArr = explode(',',$readArray[$teacher]); if (!in_array($student,$studentArr)){ $readArray[$teacher] = $readArray[$teacher].",".$student; } }else{ $readArray[$teacher] = $student; } }else{ $readArray[$teacher] = $student; } file_put_contents('ballot.txt', serialize($readArray));

逐行说明:
1、假设现在学生李明给王老师投票;
2、如果
ballot.txt存在则读取内容,反序列化赋值给数组$studentArr,注意这个很有用的函数file_get_contents(),可以自己完成fopen(),fread(),fclose()多步操作并且执行效率高,详见php手册;
3、如果数组有“王老师”这个键,将此键对应的值这个字符串按“,”分割为数组并赋值给$studentArr注意array_key_exists()这个函数,详见php手册;
4、如果数组$studentArr中没有“李明”,则向数组$readArray中键为“王老师”对应的值中加上“李明”,并以“,”分隔;
5、否则不做添加;
6、将所得数组序列化写入ballot.txt,注意file_put_contents()
函数的用法,详见php手册;
7、若想统计每个老师的得票数,请点击此链接http://blog.csdn.net/linglongwunv/archive/2010/01/12/5183164.aspx。

      心情好,送大家两个比较有意思的php内置函数,将数组的键值互换:array_flip(),去掉数组中重复的值:array_unique(),详见php手册。

你可能感兴趣的:(PHP,File,文档,2010)