我一直在尝试找出如何从单个文件夹内的多个文本文件中提取信息以在表中整齐地显示,我需要清理和显示大约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 "版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要实现您的需求,您可以使用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
变量的值为您的实际文件夹路径,并根据您的具体文本格式调整正则表达式。如果您的文本文件格式与示例有差异,请相应调整正则表达式的模式。