我有一个以下格式的文本文件,我们称之为stats.txt:
valueA1, valueA2, valueA3, valueA4
valueB1, valueB2, valueB3, valueB4
valueC1, valueC2, valueC3, valueC4
valueD1, valueD2, valueD3, valueD4
我希望在html文档中使用此代码填充四个文本框或textareas,并在提交表单时附加到文本文件的相应行。我对PHP知之甚少,所以无法找到实现这一目标的方法。
我当前的html文件如下所示:
$url = 'editor.php';
$file = 'stats.txt';
// check if form has been submitted
if (isset($_POST['text1']))
{
// save the text contents
file_put_contents($file, $_POST['text1']);
// redirect to form again
header(sprintf('Location: %s', $url));
printf('<a href="%s">Updated</a>.', htmlspecialchars($url));
exit();
}
// read the textfile
$text = file_get_contents($file);
?>
我无法弄清楚如何在文本文件的行之间循环,所以有一大堆可怕的代码来获取每行的值:
<?php
//for Line 1
$myLine1 = 1 ;
$linefile1 = new SplFileObject($file);
$linefile1->seek($myLine1-1);
//for Line 2
$myLine2 = 2 ;
$linefile2 = new SplFileObject($file);
$linefile2->seek($myLine2-1);
//for Line 3
$myLine3 = 3 ;
$linefile3 = new SplFileObject($file);
$linefile3->seek($myLine3-1);
//for Line 4
$myLine4 = 4 ;
$linefile4 = new SplFileObject($file);
$linefile4->seek($myLine4-1);
?>
表格如下:
<form action="" method="post">
#stuff 1
<textarea id="stuff" name="stuff[]"><?php echo htmlspecialchars($linefile1) ?></textarea>
#stuff 2
<textarea id="stuff" name="stuff[]"><?php echo htmlspecialchars($linefile2) ?></textarea>
#stuff 3
<textarea id="stuff" name="stuff[]"><?php echo htmlspecialchars($linefile3) ?></textarea>
#stuff 4
<textarea id="stuff" name="stuff[]"><?php echo htmlspecialchars($linefile4) ?></textarea>
<input type="submit" />
<input type="reset" />
</form>
有人可以帮我这个吗?
答案 0 :(得分:0)
这是我编写的用于存储和检索文本文件数据的代码,您可以将其用作示例:
// Save Check Boxes in Serial Form for later retrieval
$myFile = "equipment.txt";
if($save == "yes"){
$stringData = serialize(array($container_20,$container_40,$container_45,$container_RF,$container_HQ,$container_Chassis));
file_put_contents($myFile, $stringData);
}
// Read Saved File and Populate Check Boxes
$recoveredData = file_get_contents($myFile);
list($container_20,$container_40,$container_45,$container_RF,$container_HQ,$container_Chassis) = unserialize($recoveredData);
答案 1 :(得分:0)
只需循环显示行并显示textareas。使用file()将文件放入数组
<?php $file = file('stats.txt');?>
<form action="" method="post">
<?php
foreach($file as $line) {
echo "<textarea id='stuff' name='stuff[]'>".htmlspecialchars($line)."</textarea>";
};?>
<input type="submit" />
<input type="reset" />
</form>
然后当你提交表格
if(isset($_POST['stuff'])){
$text = join("\n", $_POST['stuff']);
file_put_contents($file, $text);
};