我正在尝试从文本文件创建有序列表。正如我的代码当前所示,它修改了原始文本文件,输入全部在同一行(列表编号)。例如,如果我输入“水银”,它将显示为1.水银,但如果我输入“venus”,它将显示为1.mercuryvenus
我试图让它工作,以便如果我输入一些文本,如“水银”,然后点击提交按钮,它将显示为 水银如果我输入更多文本,例如“venus”,它将显示为2. venus,全部采用有序列表格式。我认为爆炸可能会用于此,但我不确定如何正确实现这一点。另一个选择是为每个输入创建一个新的文本文件,如果它更有效。
echo "<form method='post'>
<label>Enter some text</label><br>
<textarea name='textbox' cols='60' rows='5' required></textarea>
<br>
<input type='submit' name='submit' value='Submit'/>
<input type='hidden' name='step' value=''/>
</form>";
echo "<section>";
echo "<h3>Current tasks</h3>";
$text = ("text.txt");
$extract = (isset($_POST['textbox']) ? $_POST['textbox'] : null);
$file = fopen($text,"a");
fwrite($file,$extract);
fread($file,filesize("text.txt"));
fclose($file); #Not sure where this should really go
$c = array(file_get_contents('text.txt'));
$x = explode(" ",$c); #Could be wrong format
echo "<ol>";
foreach($c as $r) {
echo "<li>" . $r. "</li>", "<br>";
}
echo "</ol>";
echo "</section>";
答案 0 :(得分:1)
这是解决方案
echo "<section>";
echo "<h3>Current tasks</h3>";
$text = "text.txt";
$extract = (isset($_POST['textbox']) ? $_POST['textbox'] : null);
$file = fopen($text,"a+");
fwrite($file," ".$extract);
#fread($file,filesize("$text"));
$x = explode(" ",file_get_contents($text));
if(isset($_POST['submit'])) {
echo "<ol>";
foreach ($x as $r) {
echo "<li>" . $r . "</li>", "<br>";
}
echo "</ol>";
echo "</section>"
答案 1 :(得分:0)
首先,"a"
中的fopen($text,"a")
表示附加。这意味着如果你的文件中已经有“水银”文字并且你用“venus”再次运行你的程序,那么你将在“水银”的末尾添加“venus”来获得“mercuryvenus”。如果您想要两者之间的空格,则必须在将其写入文件时添加它:fwrite($file, " ".$extract);
其次,您执行$x = explode(...
,然后在$x
语句中不使用foreach
。在$x
中使用$c
代替foreach
。