【问题标题】:Php flatfile database with tabs带标签的 PHP 平面文件数据库
【发布时间】:2016-05-03 07:49:27
【问题描述】:

我已经编写了这个 HTML 列表,您可以在 sn-p 中看到:

<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>

我想用下面的flatfile txt数据库创建一个php页面来获得同样的结果:

Boys
    Mathew
    Mark    
    Kirk
    John

Girls
    Mary
    Sue
    Jessica
    Alice

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

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

【问题讨论】:

  • 可以假设什么语法?例如。 组名从第一个位置开始; 人名前面至少有 1 个空格或制表符?
  • 是的,就是这样。没错。
  • 不要对自己“做”平面文件——至少使用 SQLite 之类的东西。
  • @CBroe 是不是比txt文件还要简单?我不在乎安全

标签: php database tabs flat-file


【解决方案1】:

这里有一个关于如何进行的想法:

<?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文件名。

【讨论】:

  • 谢谢,但我找不到创建最终 php.ini 的方法。你能帮我解决这个问题吗?
  • “找不到创建最终 php 的方法”是什么意思。上面的脚本一个php脚本。
  • 这一定是我的错误:(当我用你的代码创建一个 php 时,它显示为一个空白页面,与我在我的 php 中得到的结果不同。抱歉!
  • 哦,我明白了。您的问题也是如何从结果数组创建 HTML 代码 - 对吧?
  • 嗯,是的。我正在尝试将我的 html 与您的代码在这里和那里混合,但找不到方法...
猜你喜欢
  • 2015-12-24
  • 2010-12-10
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 2011-08-23
  • 2012-03-10
  • 1970-01-01
  • 2012-09-25
相关资源
最近更新 更多