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文件名
我写了这个 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文件名