PHP从多个文件夹中提取特定的.text数据并创建表

时间:2014-04-27 06:41:23

标签: php directory extract names

我有一个项目,我绝对没有能力。我通常会收到大量文件夹,其中包含大约17个文件。每个文件都有不同的变量,我需要提取并创建一个表。例如:

FOLDER: Server 01
TEXT FILE: password parameters.txt
PARAMETER: Password Length - 8
PARAMETER: Password Age - 120 days
PARAMETER: Password Complexity - enabled
TEXT FILE: audit settings.txt
PARAMETER: Auditing function 01 - on
PARAMETER: Auditing function 02 - disabled
PARAMETER: Auditing function 03 - enabled

FOLDER: Server 02
TEXT FILE: password parameters.txt
PARAMETER: Password Length - 8
PARAMETER: Password Age - 120 days
PARAMETER: Password Complexity - enabled
TEXT FILE: audit settings.txt
PARAMETER: Auditing function 01 - on
PARAMETER: Auditing function 02 - disabled
PARAMETER: Auditing function 03 - enabled

所有.txt文件名将始终相同,变量名将始终相同。我只想把' - '之后的内容拿出来。我需要创建一个表,其中第一行将在A1中显示“服务器名称”,然后是以下行中的参数标题,例如“密码长度,密码使用期限,密码复杂性等”。然后在第二行中,列A将是服务器名称,然后以下列将具有我想要提取的参数。

完成所有研究后,我能够提取文件夹名称,但无法使用以下代码创建表格:

<?php
$path = 'C:\Documents and Settings\KK\Desktop\kk'; // '.' for current
foreach (new DirectoryIterator($path) as $file)
{
    if($file->isDot()) continue;

    if($file->isDir())
    {
        print $file->getFilename() . '<br />';
    }
}
?>

然后我终于想出了如何创建表,它会提取所有子文件夹名称以及文件夹中的所有其他文件。我只想到如果没有解决这个问题,那么在尝试从子文件夹中提取其他文件时,脚本会感到困惑。这就是我到达那里的方式。

<?php 
// open this directory 
$myDirectory = opendir("C:\Documents and Settings\KK\Desktop\kk");
// get each entry
while($entryName = readdir($myDirectory)) {
    $dirArray[] = $entryName;
}
// close directory
closedir($myDirectory);
//  count elements in array
$indexCount = count($dirArray);
Print ("$indexCount files<br>\n");
// sort 'em
sort($dirArray);
// print 'em
print("<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks>\n");
print("<TR><TH>Server Name</TH><th>Other Info 01</th><th>Other Info 02</th></TR>\n");
// loop through the array of files and print them all
for($index=0; $index < $indexCount; $index++) {
        if (substr("$dirArray[$index]", 0, 1) != "."){ // don't list hidden files
        print("<TR><TD>$dirArray[$index]</td>");
        print("</TR>\n");
    }
}
print("</TABLE>\n");
?>

我们非常感谢您在这方面提供的任何帮助。

0 个答案:

没有答案