开发者社区 问答 正文

试图从多个文本文件中获取信息以显示在表格中

我一直在尝试找出如何从单个文件夹内的多个文本文件中提取信息以在表中整齐地显示,我需要清理和显示大约3行左右的行。文本文件的数量将有所不同。

我需要从文本文件中提取的行:

名称=唯一名称 类别=唯一类别的 来源=唯一来源 他们需要显示以下内容: | Name | Category | Source | |------------|----------------|--------------| |unique name1|unique category1|unique source1| |unique name2|unique category2|unique source2| |unique name3|unique category3|unique source3| |unique name4|unique category4|unique source4| |unique name5|unique category5|unique source5| |unique name6|unique category6|unique source6|


到目前为止,我可以用来列出名称的代码是这样的:

$fl) { if(strpos($fl, $needle)!==false) { echo preg_replace(array('/name = /'), '', $fl,); echo "
"; } } } ?>

展开
收起
社区秘书 2019-12-09 15:50:21 566 分享 版权
阿里云 AI 助理回答

要实现您的需求,您可以使用PHP脚本遍历文件夹中的所有文本文件,读取每个文件的内容,并提取您需要的信息。然后,将这些信息整理并输出到一个HTML表格中。以下是一个简单的示例代码,展示了如何完成这个任务:

<?php

// 文件夹路径,请根据实际情况修改
$folderPath = 'path/to/your/folder/';

// 初始化数据数组
$data = [];

// 遍历文件夹
$files = glob($folderPath . "*.txt");
foreach ($files as $file) {
    // 读取文件内容
    $content = file_get_contents($file);
    
    // 使用正则表达式匹配所需行
    preg_match_all('/name=(.*?)\ncategory=(.*?)\nsource=(.*?)(?:\n|$)/s', $content, $matches, PREG_SET_ORDER);
    
    // 提取信息并存入数据数组
    foreach ($matches as $match) {
        $data[] = [
            'Name' => trim($match[1]),
            'Category' => trim($match[2]),
            'Source' => trim($match[3])
        ];
    }
}

// 输出HTML表格
echo "<table border='1'>";
echo "<tr><th>Name</th><th>Category</th><th>Source</th></tr>";
foreach ($data as $row) {
    echo "<tr>";
    echo "<td>" . htmlspecialchars($row['Name']) . "</td>";
    echo "<td>" . htmlspecialchars($row['Category']) . "</td>";
    echo "<td>" . htmlspecialchars($row['Source']) . "</td>";
    echo "</tr>";
}
echo "</table>";

?>

这段代码首先定义了要遍历的文件夹路径,然后使用glob()函数获取该路径下所有的.txt文件。对于每个文件,它读取文件内容,并使用正则表达式匹配出您指定格式的行(名称、类别和来源)。匹配到的信息被存储在一个多维数组中,每一项代表一行数据。

最后,脚本通过遍历这个数组来生成HTML表格,展示提取的数据。请注意,为了安全地显示在网页上,这里使用了htmlspecialchars()函数来转义特殊字符。

请确保替换$folderPath变量的值为您的实际文件夹路径,并根据您的具体文本格式调整正则表达式。如果您的文本文件格式与示例有差异,请相应调整正则表达式的模式。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: