gpt4 book ai didi

PHP检查数组中的项目

转载 作者:行者123 更新时间:2023-12-02 06:48:21 26 4
gpt4 key购买 nike

我目前正在尝试构建一个通用的 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 完成了工作:)

最佳答案

file返回文件中的行,包括结尾的换行符,因此它们不会匹配正在提交的字符串(除非它也包含换行符,显然)。

避免这种情况的最简单方法是使用 FILE_IGNORE_NEW_LINES 标志:

$todo = file('todo.txt', FILE_IGNORE_NEW_LINES);

关于PHP检查数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51534054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com