我想从文本文件中生成一个表单,这样我只需要更新提到的文本文件而不是PHP网站即可。因为我需要知道此表格有多少条目,所以我想使用变量。(我知道一个MySQL数据库会使它变得容易得多,但我需要在没有MySQL的情况下进行(
目前我的php"导入函数"看起来像这样,逐行读取文件,从而计算我添加了多少个元素:
$file = fopen("test.txt","r");
$AmountOfEntries=0;
$EntryNumber=0;
while(! feof($file)){
$EntryNumber++;
$str = fgets($file);
echo $str;
$AmountOfEntries++;
}
fclose($file);
这是我的文本文件的内容
a<input type="checkbox" name="$EntryNumber" id="a" value="This is a"><br>
b<input type="checkbox" name="$EntryNumber" id="b" value="This is b"><br>
c<input type="checkbox" name="$EntryNumber" id="c" value="This is c"><br>
d<input type="checkbox" name="$EntryNumber" id="d" value="This is d"><br>
导入本身起作用,我唯一的麻烦就是用其值替换变量。我试图使用
将其附加name="'. $EntryNumber. '"
,但它不起作用。另外,我首先将该行存储在$ str中的原因是,我希望如果它在回荡之前进行"处理",这将起作用。我还知道使用数组会很有帮助,我也尝试过,但是因为我想将已提交表单的整个HTML代码写回TXT文件,所以我还需要未检查的复选框,并且使用数组时,我无法确定他们的状态。因此,如果您有一个主意,我如何使用数组而不是每个复选框的单个名称进行操作,这也将受到欢迎。
预先感谢!
<?php
$str = 'a<input type="checkbox" name="$EntryNumber" id="a" value="This is a"><br>
b<input type="checkbox" name="$EntryNumber" id="b" value="This is b"><br>
c<input type="checkbox" name="$EntryNumber" id="c" value="This is c"><br>
d<input type="checkbox" name="$EntryNumber" id="d" value="This is d"><br>';
//$str = file_get_contents('test.txt');
$str_array = explode("rn", $str);
$AmountOfEntries = count($str_array);
for($EntryNumber = 0; $EntryNumber < $AmountOfEntries; $EntryNumber++)
{
$str_array[$EntryNumber] = str_replace('"$EntryNumber"', '"'.$EntryNumber.'"', $str_array[$EntryNumber]);
}
var_dump(implode("rn", $str_array));
?>
输出
string(254) "a<input type="checkbox" name="0" id="a" value="This is a"><br>
b<input type="checkbox" name="1" id="b" value="This is b"><br>
c<input type="checkbox" name="2" id="c" value="This is c"><br>
d<input type="checkbox" name="3" id="d" value="This is d"><br>"