2016-08-01 7 views
1

配列の検索で$postが見つからないために失敗したプログラムがありますので、毎回追加していきます。私はforeachループを使用する他の提案された方法を使用しました。strposなど: if (strpos($data, $posts) !== false)があります。これは$postを見つけることができますが、残りはデータ/配列内のすべてに対して実行されます。それで、配列を検索するのが好きなのはなぜですか?もしそれがあれば、それを追加してください、それはそこにある、またはチェックインしています...私はin_arrayarray_searchなどを使って3日間過ごしました。助けを求める... $post配列から簡単な配列検索を実行できません

<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> 

tclient.html

<html> 
<body> 

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

</body> 
</html> 

data.txtを

Names 
John 
Doe 

答えて

1

値はおそらく最後に新しい行を持っていません。 file()を使用すると、改行を含まないように指定できます。

file("data.txt", FILE_IGNORE_NEW_LINES); 
+0

あなたは、この動作のためのフラグを持っていることは興味深いです。これは、デフォルトの動作であることが明らかです。 –

+0

ありがとうございます、今の魅力のように... –

+0

@JasonOwensようこそ。 –

関連する問題