我有2个文本文件,并使用php将其内容读入2个数组中。然后,我创建一个表格并将其显示在我的网站上。我现在想根据特定值为数组2(第2列)中的每个单元格着色。
例如:
如果array2中的值包含“忙”,则应将其格式化为红色,如果 它包含“可用”,应格式为绿色。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<form action="" method="post" class="formbody">
<div class="codetable">
<?php
$file1 = "c:/presencetool/ramfile1.txt";
$file2 = "c:/presencetool/ramfile2.txt";
$line1= file($file1, FILE_IGNORE_NEW_LINES);
$line2 = file($file2, FILE_IGNORE_NEW_LINES);
$combine = array_combine($line1, $line2);
$html = "<table align=center>";
$html .= "<tr><td width=300px></td><td></td></tr>";
$i = 1;
foreach ($combine as $file1 => $file2):
$html .= "<tr>";
$html .= "<td>".$file1."</td>";
$html .= "<td>".$file2."</td>";
$html .= "</tr>";
$i++;
endforeach;
$html .= "</table>";
echo $html;
?>
<div class="codelabel">
</div>
</div>
</form>
</body>
</html>
我尝试了一些可能的解决方案,但无法将其投入工作。 有任何想法吗?如果我需要提供任何信息,请询问。
编辑: ramfile 1&2的内容:
ramfile1:
User @ 1
User @ 2
User @ 3
...
User @ n
ramfile2:
忙
忙
可用
忙
...
答案 0 :(得分:1)
<?php
$path = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'demo'.DIRECTORY_SEPARATOR;
$file1 = $path.'ramfile1.txt';
$file2 = $path.'ramfile2.txt';
if(file_exists($file1) && file_exists($file2)) {
$line1= file($file1, FILE_IGNORE_NEW_LINES);
$line2 = file($file2, FILE_IGNORE_NEW_LINES);
$combine = array_combine($line1, $line2);
$html = '<table align="center">';
$html .= '<tr><td width="300px"></td><td></td></tr>';
$i = 1;
foreach ($combine as $key => $value):
$html .= '<tr class="'.$value.'">';
$html .= '<td>'.$key.'</td>';
$html .= '<td>'.$value.'</td>';
$html .= '</tr>';
$i++;
endforeach;
$html .= '</table>';
echo $html;
}
?>
<style>
.Busy { background-color: #f2a179;}
.Available { background-color: #00ff00;}
</style>
答案 1 :(得分:0)
foreach($ combine作为$ file1 => $ file2):
此行完全没有意义。它可能会运行,但不会执行您描述的操作。我想你真的想要这样的东西。...
DECLARE @sql NVARCHAR(max)=''
SELECT @sql = @sql + N' ALTER SEQUENCE ' + s.name + N'.' +sq.name
+ N' RESTART WITH '+ cast (cast(sq.current_value as bigint) + cast(sq.increment as bigint) AS NVARCHAR(20))
+ CHAR(10) + CHAR(13)
FROM sys.sequences sq
join sys.schemas s on s.schema_id = sq.schema_id
PRINT @sql
但是,您要根据行号在一个文件中解析另一个文件中的数据,这是对数据结构的非常糟糕的选择。
如果array2中的值包含“忙”,则应将其格式化为红色,如果包含“可用”,则应将其格式化为绿色。
有很多方法可以做到这一点。您可以调用一个函数。...
foreach ($file1 as $i=>$value) {
$html .= "<tr>";
$html .= "<td>".$file1[$i]."</td>";
$html .= "<td>".$file2[$i]."</td>";
$html .= "</tr>";
}
或者您可以使用依赖注入,也可以使用数组查找。或者,您可以简单地基于该值声明CSS类,并将该值注入为TD的类名称(但请记住,这允许控制数据的人将html / javascript注入您的页面:
$bgcolor=lookup_css_class($file2[$i]);
$html .= "<td class='$bgcolor'>$file2[$i]</td>";