我试图在键入元素名称后将其添加到数组中,但由于某些原因,当我执行时
<?php
session_start();
$u = array("billy'n", "tyson'n", "sanders'n");
serialize($u);
file_put_contents('pass.txt', $u);
if (isset($_POST['set'])) {
unserialize($u);
array_push($u, $_POST['check']);
file_put_contents('pass.txt', $u);
}
?>
<form action="index.php" method="post">
<input type="text" name="check"/><br>
<input type="submit" name="set" value="Add person"/><br>
<?php echo print_r($u); ?>
</form>
它将它放入数组中,但当我再次执行时,它会重写以前写入的元素。有人知道怎么解决这个问题吗?
您总是从同一个数组开始,这意味着无论您做什么,都只能添加一个人。我/认为/你正在尝试将每个人添加到文件中,这可以通过修改代码以类似于以下内容来完成:
session_start();
$contents = file_get_contents('pass.txt');
if (isset($_POST['set'])) {
$u = unserialize($contents);
array_push($u, $_POST['check'] . "'n");
$u = serialize($u);
file_put_contents('pass.txt', $u);
}
还要注意,不能单独使用[un]serialize()
,它必须用于变量的设置中。
**注意:就我个人而言,我只想走简单的路线,做$u[] = $_POST['check']
,因为使用array_push()
来推送一个元素似乎有点。。。过度杀戮。