我有以下php文件,它接受一些表单值并写入文本文件并创建一个易于查看的格式:
$filename = "blah.txt"; #Must CHMOD to 666, set folder to 777
$text = "\n" . str_pad($fname, 30) . "" . str_pad($lname, 30) . "" . str_pad($tdate, 20) . "" . str_pad($ydept, 30) . "" . str_pad($percentage, 0) . "%";
$fp = fopen ($filename, "a"); # a = append to the file. w = write to the file (create new if doesn't exist)
if ($fp) {
fwrite ($fp, $text);
fclose ($fp);
#echo ("File written");
}
else {
#echo ("File was not written");
}
已创建的文本文件具有预格式,如下所示:
@@@@@@ CLINICAL EXAM @@@@@@
First Name Last Name Date Taken Department Percentage
========== ========= ========== ========== ==========
正在编写新记录时,它看起来像这样:
@@@@@@ CLINICAL EXAM @@@@@@
First Name Last Name Date Taken Department Percentage
========== ========= ========== ========== ==========
Lolll Pelol 02/13/13 Nursing 92%
Catger Powhytr 02/13/13 Nursing 92%
当新用户参加考试时,它将继续附加到现有文件。 我想设置一个身份验证,因此它需要用户名/密码来查看文件并保留格式。我可以使用include()设置身份验证;在php文件顶部读取文本文件的方法。我有以下代码读取文件:
<?php
$filename = "blah.txt";
$file = $filename;
$contents = file($file);
$string = implode("<br>", $contents);
echo "<pre>" . $string . "</pre>";
echo "<br></br>";
?>
显示以下内容:
@@@@@@ CLINICAL EXAM @@@@@@
First Name Last Name Date Taken Department Percentage
========== ========= ========== ========== ==========
Lilll Pelol 02/13/13 Nursing 92%
Catger Powhytr 02/13/13 Nursing 92%
我喜欢做的是显示它保存的格式,以便让用户可以阅读。我怎么能做到这一点? 我正在尝试这样做,因为在网络上保留一个文本文件使每个人都可以看到它,这是一个安全问题。
答案 0 :(得分:3)
如果要将文件输出到浏览器,则必须在文件内容周围使用<pre>...</pre>
(或者使用font-family:monospace; white-space:pre
的元素),否则空格将被折叠。
请注意原始代码中. "" .
是无操作,因此可以删除,只留下.
此外,我建议这样做而不是所有str_pad
次来电:
$text = sprintf("\n%-30s%-30s%-20s%-30s%s%%",$fname,$lname,$tdate$ydept,$percentage);