带有选项卡的 Php 平面文件数据库


Php flatfile database with tabs

我写了这个HTML列表,你可以在片段中看到:

<head>
  <style>
    div input + div > div {
      display: none;
    }
    div input:checked + div > div {
      display: block;
    }
  </style>
</head>
<body>
  <div>
    <label for='boys'>Boys</label>
    <input type='checkbox' id='boys' />
    <div>
      <div>Mathew</div>
      <div>Mark</div>
      <div>Kirk</div>
      <div>John</div>
    </div>
  </div>
  <div>
    <label for='girls'>Girls</label>
    <input type='checkbox' id='girls' />
    <div>
      <div>Mary</div>
      <div>Sue</div>
      <div>Jessica</div>
      <div>Alice</div>
    </div>
  </div>
</body>

我想使用以下平面文件 txt 数据库创建一个 php 页面以获得相同的结果:

Boys
    Mathew
    Mark    
    Kirk
    John
Girls
    Mary
    Sue
    Jessica
    Alice

我的问题是:如何创建一个PHP来读取上面的平面文件数据库?

我知道我没有提供后台 php 代码,但这是我项目的第一步,我不知道如何开始。对不起,提前谢谢。

以下是有关如何继续的想法:

<?php
$filename = 'path/filename.ext';
// Read the file into an array of lines
$lines = file($filename, FILE_IGNORE_NEW_LINES);
// Group name
$group = '????';
// Our result
$GroupsAndNames = array();
// Loop over all lines; extract group names and person names
foreach($lines as $line) {
    if (trim($line)=='') continue; // ignore empty lines
    if ( ($line[0]!=' ') && ($line[0]!="'t") ) {
        // it's a group entry, so create an empty group array
        $group = trim($line);
        $GroupsAndNames[$group] = array();
    } else {
        // it's a person's name, so add to group array
        $GroupsAndNames[$group][] = trim($line);
    }
}
echo '<!DOCTYPE html>
<html>
<head>
<title>Boys and Girls</title>
<head>
<style>
    div input + div > div {
    display: none;
    padding-left:24px;
}
div input:checked + div > div {
    display: block;
}
</style>
</head>
<body>' . PHP_EOL;
foreach($GroupsAndNames as $key => $group) {
    echo '    <div>' . PHP_EOL;
    echo '        <label for="'.$key.'">'.$key.'</label>' . PHP_EOL;
    echo '        <input type="checkbox" id="boys" />' . PHP_EOL;
    echo '        <div>' . PHP_EOL;
    foreach($group as $name) {
    echo '            <div>'.$name.'</div>' . PHP_EOL;
    }
    echo '        </div>' . PHP_EOL;
    echo '    </div>' . PHP_EOL;
}
echo '
</body>
</html>
' . PHP_EOL;
?>

这将生成您的问题中的 HTML 页面。

注意:当然,您需要修改$filename文件名。