[PHP] Array pushen und durchsuchen

01/01/2011 16:29 n3rdsupreme#1
Ich habe folgendes Problem:
ich möchte jede Zeile einer Textdatei in ein Array pushen und dieses danach nach einem Bestimmten Eintrag durchsuchen.
Folgender Code:
PHP Code:
<?php
$hallo 
= array();
$test $_GET['test'];

$datei fopen("test.txt","r");
while (!
feof($datei))
{
    
$zeile fgets($datei,500);
    
array_push($hallo,$zeile);
}
fclose($datei);

if (!
in_array($test$hallo))
{
    
$handle fopen("test.txt","a");
    
fwrite($handle$test);
    
fwrite($handle"\r\n");
    
fclose($handle);
}
?>
Ich kann wirklich keinen Fehler mehr entdecken, trotzdem kommt aus der Abfrage "if (!in_array($test, $hallo))" immer nur ein ja raus, egal ob das Array den String enthält, oder nicht.
01/02/2011 04:27 hallamasch#2
Dein problem liegt wahrscheinlich darin, das du eine negation durchführst.
!in_array

Ausserdem ist in_array case sensitive.

Was steht den in deiner text.txt?
Was übergibst du in deinem $_GET['test'] Parameter?


Dokumentation:
[Only registered and activated users can see links. Click Here To Register...]
01/02/2011 12:11 n3rdsupreme#3
Der eigentliche Sinn davon ist, dass $test nur in die txt Datei geschrieben werden soll, wenn es noch nicht drin steht. Das funktioniert aber wieso auch immer nicht richtig ($test wird immer eingetragen).
01/03/2011 02:36 rhodi#4
Quote:
Originally Posted by n3rdsupreme View Post
Der eigentliche Sinn davon ist, dass $test nur in die txt Datei geschrieben werden soll, wenn es noch nicht drin steht.
PHP Code:
<?php
if (strpos(file_get_contents('test.txt'), $_GET['test']) === false){
    
file_put_contents('test.txt'"\r\n".$_GET['test'], FILE_APPEND);
}
?>>
Erfüllt das was ich von dir zitiert habe und ist dabei schneller.
Für case-insensitive: stripos()
01/03/2011 11:52 n3rdsupreme#5
Vielen Dank, es klappt wunderbar!