在输入元素名称后,我尝试将元素添加到数组中,但由于某种原因,我要添加元素。
<?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>它将其放入数组中,但当我再次这样做时,它会重写前面编写的元素。有人知道怎么解决吗?
发布于 2014-04-26 05:21:44
你总是从相同的数组开始,这意味着无论你做什么,你都只能添加一个人。我/认为/您正在尝试将每个人添加到文件中,这可以通过修改代码来实现,如下所示:
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()推一个元素似乎有点.过火了。
https://stackoverflow.com/questions/23306340
复制相似问题