在留言簿中制作一个数组?

时间:2011-03-23 13:18:52

标签: php html stack

guestbook正常工作。新消息很好地建立起来。 现在,只需要使用LIFO结构显示10条最新消息。

我的课程仍然要求我不使用数据库或会话变量,所以我仍然只在这里使用I / O.

<?php
  $message = "<p><b>naam: </b>$_POST[naam] <br>
                <b>email: </b>$_POST[email] <br>
                <b>onderwerp: </b>$_POST[subj]<br><br>
                <b>bericht: </b>$_POST[bericht]<br>
                <b>verzonden op: </b> $datum
                </p>
                <hr/>";
            if (is_writable ($file)){
                $fp= fopen($file, "a")
                        or die ("can't open file");
                    fwrite ($fp, $message);
                    fclose($fp);

                }//end if writable
            else {
                print ("can't write to file");
                }   
            if (is_readable($file)){
                $fp = fopen($file, "r");
                $message = fread ($fp, filesize($file));
                fclose ($fp);
                print ($message);
                }
            else {
                print("can't read file");}
    }//end else (variables not empty)
?>

所以我想这里的想法是让$ message成为一个数组,然后将它计为10,然后在每次出现新消息时不断弹出。然后我想只是声明$message []不起作用,现在我几乎无能为力.ak

1 个答案:

答案 0 :(得分:1)

嗯,非常蹩脚解决方案是将整个文件读入内存,将其内容爆炸到单独的数组元素中。

$contents = file_get_contents($file);
$messages = explode("<hr/>",$contents);

但是,要使您的留言簿可靠,您必须更改数据文件的格式。

在过去几年中,当大多数留言簿都是基于文件的平面时,最常见的格式是这样的:

名称|电子邮件|标题|日期|消息

其中只保存没有格式化的数据,每条消息都在一个单独的行上,字段由一些特殊字符或一组字符分隔。
这种基于文本文件的解决方案也不太可靠,但至少可以处理它而没有可用内存过载的风险。

相关问题