Php Can';t从数组执行简单数组搜索

Php Can';t从数组执行简单数组搜索,php,html,arrays,search,Php,Html,Arrays,Search,我有一个程序失败了,因为它在搜索数组时没有找到$post,所以每次都会继续添加。我使用了另一种建议的方法,即使用foreach循环和strpos,例如: if(strpos($data,$posts)!==false),这样可以找到$post,但它也会找到其余部分并针对数据/数组中的所有内容运行。因此,为什么我只希望它搜索数组,如果它不在那里,添加它,如果它在那里,就说它在那里或签入。。。我花了3天时间在数组中使用,数组搜索等,现在我请求帮助 <html> <body>

我有一个程序失败了,因为它在搜索数组时没有找到
$post
,所以每次都会继续添加。我使用了另一种建议的方法,即使用
foreach
循环和
strpos
,例如:
if(strpos($data,$posts)!==false)
,这样可以找到
$post
,但它也会找到其余部分并针对数据/数组中的所有内容运行。因此,为什么我只希望它搜索数组,如果它不在那里,添加它,如果它在那里,就说它在那里或签入。。。我花了3天时间在数组中使用
数组搜索等,现在我请求帮助

<html>
<body>
<?php 
$post = $_POST['name'];
$data = file("data.txt");
if (in_array($post, $data)) {
    echo "$post is checking in...";
}
else {
    echo "Adding to $data...";
    $data = fopen("data.txt", "a+");
    fwrite($data, $post.PHP_EOL);
    fclose($data);
}
$data = file("data.txt");
foreach ($data as $d) {
    echo $d;
}

?>

</body>
</html>

$post
中的值结尾可能没有新行。可以指定在使用时不包含新行


有趣的是,您必须标记此行为。这将是非常明智的默认行为。@JuanTomas同意。哈哈,3天,3分钟内就有答案了,哈哈。你能告诉我我是个傻瓜吗?不,是这样的。我只知道这件事,因为我经历了同样的事情。我认为大多数人一开始会在错误的地方寻找解决方案,因为这似乎不是
文件
应该做的。只要data.txt文件中有内容,它现在就可以工作。它可以是txt文件中的正确名称值,第一次它不会捕捉到它,但第二次我发送帖子时,它会捕捉到。因此,如果我有data.txt文件,其中有Thomas的名字。它不会在第一次尝试时找到它(尽管它在那里),它的输出是:添加到数组。。。目前监测:托马斯瘤
<html>
<body>

<form action="test4.php" method="POST">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>

</body>
</html>
Names
John
Doe
file("data.txt", FILE_IGNORE_NEW_LINES);