在PHP中保存和加载活动日志的最佳方法是什么?

Fiz*_*zix 5 php

在我开始之前,这是一个分配.我只是在帮助之后给了一些指导:)

我正在开发一个健身房会员网站,允许用户注册,登录和预订活动.

除了活动预订系统外,我还有一切工作,这就是我需要的指导.我有一个txt文件,其中包含每个活动名称,时间,总共可以参加的活动日志.我想在每个活动的最后添加一个谁正在参加.因此,允许用户预订活动,将活动用户名添加到活动中.

这正是我目前的activity.txt文件打印方式(除了最右边的'Book'按钮.

NumberOne       3       Wednesday 8am       (BOOK)
NumberTwo       7       Thursday 10am       (BOOK)
NumberThree     20      Monday 1pm          (BOOK)
NumberFour      15      Tuesday 5pm         (BOOK)
Run Code Online (Sandbox Code Playgroud)

基本上,我需要指导的是"书籍"按钮.按下"预订"按钮后,它会将用户预订到活动中.

这是我的activity.txt文件当前的样子:

NumberOne,3,Wednesday 8am
NumberTwo,7,Thursday 10am
NumberThree,20,Monday 1pm
NumberFour,15,Tuesday 5pm
Run Code Online (Sandbox Code Playgroud)

这是我目前正在打印活动的代码:

function bookActivity()
{
 $fileContentsArray = file("activity.txt");
    echo "<table>";
    foreach($fileContentsArray as $one_persons_data)
{
  echo '<tr>';
  $splitted = preg_split('/,/', $one_persons_data);
  foreach ($splitted as $one) 
  {
    echo "<td>$one</td>";
  }
  echo '</tr>';
}
echo "</table>";
}
Run Code Online (Sandbox Code Playgroud)

如果需要,下面是我的users.txt文件.所有密码都保存在MD5中

jiten:3fc0a7acf087f549ac2b266baf94b8b1
jb:3fc0a7acf087f549ac2b266baf94b8b1
test:bed128365216c019988915ed3add75fb
joeBlogg:bed128365216c019988915ed3add75fb
userX:bed128365216c019988915ed3add75fb
userY:bed128365216c019988915ed3add75fb
Run Code Online (Sandbox Code Playgroud)

非常感谢所有帮助.对如何做到这一点非常困惑.

STT*_*LCU 1

这是一个粗略的指南(我不会详细说明,因为这毕竟是家庭作业),我会保留这样的假设:不允许使用除文本文件之外的任何内容,但可以根据需要创建/删除任意数量的文件。

  1. 解析活动 txt 文件,使用file(...)正确的标志设置
  2. 构建一个数组,其中键是活动“ID”(numberOne、numberTwo 等),值是包含活动详细信息的另一个数组。您可能会在这里找到方便explode()
  3. 为每个活动创建一个专用于它的文件(当然,如果它尚不存在)。该文件将包含预订活动的注册用户的姓名。我建议您在此文件中的每一行写入一个名称。
  4. 当有人按下“预订活动”按钮时,您必须执行以下步骤:

    • 检查请求的活动文件是否存在。如果没有,则创建一个空的。
    • 统计当前预订用户数并与允许的最大数量进行比较
    • 如果少于,则将新用户添加到文件中,否则拒绝预订
  5. 要显示预订用户的列表,只需从每个活动文件中读取文件内容即可。implode()这次你可能会发现有用。

我希望这能帮助您找到正确的道路。最后要注意的是,文本文件的设计初衷并不是这样做:小型数据库更易于使用,学习起来更有趣,并且对您的未来更有用。

参考: