【发布时间】:2019-01-03 04:01:23
【问题描述】:
我目前正在尝试构建一个通用的 TO DO 应用程序。我有一个输入字段,用户可以在其中提交任务,然后将其写入一个名为“todo.txt”的文件中。
if(isset($_POST["submit"])) {
$task = $_POST["task"];
//check if file already exists
if(file_exists("var/www/html/todo/todo.txt")) {
//read file as array
$todo = file('todo.txt');
//check if task is in array
if(in_array($task, $todo)) {
echo "Task already exists!";
} else {
//add task
file_put_contents('todo.txt', $task.PHP_EOL, FILE_APPEND);
$todo = file('todo.txt');
}
//file not found, create file and and task
} else {
file_put_contents('todo.txt', $task.PHP_EOL, FILE_APPEND);
}
我的问题是,我检查任务是否已设置并写入文件的条件分支 if(in_array($task, $todo)) 不起作用,相同的任务正在不断添加。
知道我该如何解决这个问题吗?感谢您的回答。
感谢您的回答,标志 FILE_IGNORE_NEW_LINES 完成了这项工作 :)
【问题讨论】:
-
$todo是file对象,而不是arrayonbject。in_array支持数组作为第二个参数的输入
标签: php file conditional file-exists