我有一个包含列表的文本文件,包含大写标题,然后包含所有小写列表项。我试图找出是否有办法将其转换为表格格式。我已经能够轻松地使用.txt选项卡进行分区,因为数据很好并且从源中组织。但是这个来源很糟糕且数据没有组织。例如,列表看起来像这样:
ALL UPPERCASE TITLE 1
lowercase description line a
lowercase description line e
lowercase description line c
ALL UPPERCASE TITLE 2
lowercase description line f
lowercase description line b
ALL UPPERCASE TITLE 3
lowercase description line c
lowercase description line b
我对php非常陌生,并且认为我已经超过了我的头脑,我的问题简化为: 这可能吗?接下来的问题是我应该深入学习哪些功能来实现我的目标?
下面是我一直在与之斗争的垃圾代码,正如你所看到的,我认为我远未接近正确。
<?php
$file = file("file.txt");
print "<tr><td><b>Item</b></td><td><b>Price</b></td></tr>";
foreach($file as $line){
$line = trim($line);
$product = foreach($line as $testcaseUP){
if (ctype_upper($testcase)) {
print " $testcase \n";
}
}
$description = foreach($line as $testcaseLOWER){
if (ctype_lower($testcaseLOWER)) {
print " $testcaseLOWER \n";
}
}
print "<tr class='itemproduct'><td class='product'>$product[0]</td><td>class='price'>$description[0]</td></tr>";
}
?>
这就是我用于制作了明确的标签文件的文件:
<?php
$file = file("file.txt");
print "
<tr><td><b>Item</b></td><td><b>Price</b></td><td><b>Savings</b></td><td><b>Amount</b> </td><td><b>Where</b></td></tr>";
foreach($file as $line){
$line = trim($line);
$split = explode("\t",$line);
print "<tr class='itemproduct'><td class='product'>$split[0]</td><td> class='price'>$split[1]</td><td class='amount'>$split[2]</td><td class='sale'>$split[3] </td><td class='where'>$split[4]</td> </tr>";
}
?>
答案 0 :(得分:0)
我不知道你文件的内容。这样做的一般方法就是这样。
file('file.txt')
将您的文件内容作为一维数组返回。
每一行都是数组的一个元素。一旦你遍历它,你就不能再像你那样循环它了。
你的foreach没有返回任何东西所以删除=。
使用类似的东西,然后按照你想要的方式格式化 假设文件内容为
假设file.txt:
TITLE
line
line
TITLE
line
php:
<?php
$file = file("file.txt");
echo '<table>';
foreach($file as $line){
$line = trim($line);
//check if all uppercase
if (ctype_upper($line)) {
echo" <tr><th>$line</th></tr>";
}
//else check if all lowercase
else if (ctype_lower($line)) {
echo" <tr><td>$line</td></tr> \n";
}
}
?>
关于你的第二个问题:
php手册是一个非常好的资源,它有一个原因。你不需要记住任何功能。了解语言的工作原理并继续参考手册。很快就会知道特定功能的使用时间。