Eigentlich eine einfache Frage...
Tim
- php
Hi!
Ich hab da ein Problem mit einem Script.
Das komplette Script zu erklären wäre zu verwirrend, also versuche ich es mal etwas vereinfacht:
Wenn $Zahl!="1"; soll $Zahl in ein File geschrieben werden.
Soweit so gut. Das klappt bei mir schon.
Sagen wir mal $Zahl ist nun "2", die also nun ins File geschrieben wird.
Jetzt das Problem:
$Zahl war beim User vorher schonmal "2" und ist also schon im File vorhanden.
Daher soll sie nicht nochmal gespeichert werden.
Ich denke mal das ist nur eine einzelne Zeile Code.
Aber ich komme einfach nicht drauf.
Ich habe fünf Bücher studiert, aber ich finde einfach keine Antwort.
Bitte helft mir!
Hiho,
einfache Möglichkeit: Verwende eine DB wie z.b. mySQL
schwerere Möglichkeit: Lies die Textdatei aus, zerteile sie in die einzelnen Zahlen (falls jede Zahl in einer neuen zeile steht kannst du file() verwenden, falls sie alle in einer Zeile stehen nutze explode()) und durchsuche den erzeugten Array nach der Zahl.
Marc
Hello,
einfache Möglichkeit: Verwende eine DB wie z.b. mySQL
schwerere Möglichkeit: Lies die Textdatei aus, zerteile sie in die einzelnen Zahlen (falls jede Zahl in einer neuen zeile steht kannst du file() verwenden, falls sie alle in einer Zeile stehen nutze explode()) und durchsuche den erzeugten Array nach der Zahl.
Und noch ne Kanone:
Speichere Deine Werte in einem Array.
Die geschickteste Methode wäre wahrscheinlich sogar, sie als Index eines assoziativen Arrays zu verwenden. Dann kannst Du als Zugabe sogar noch das Vorkommen der einzelnen Elemente zählen.
$_werte = array(); # erstellt ein leeres Array
$_werte['eins']++; # erhöht den Zähler für 'eins' oder legt das Element
# an, wenn es noch nicht da war.
Serialisieren:
$stream = serialize($_werte);
und abspeichern.
Wenn man die Datei in einem Schritt zum Lesen und Wegschreiben öffnet, darf man nicht vergessen, den Zeiger vor dem Wegschreiben wieder auf Anfang zu stellen (fseek()) und nach dem Wegschreiben der Daten die Datei zu trimmen (ftruncate()).
Liebe Grüße aus http://www.braunschweig.de
Tom
Danke an alle!
Ich werde heute mal alles ausprobieren.
Guten Morgen,
wenn ich es richtig verstehe, hast Du eine Datei als Speicher. Du muß also den Inhalt der Datei mit $Zahl vergleichen. Für den Fall strlen($Zahl)==1 kannst ganz simpel so vorgehen:
<?php
$f=file_get_contents('file.txt');
for($i=0;isset($f[$i]);$i++)
{
if($Zahl==$f[$i]) $u=false;
}
if($u) fputs(fopen('file.txt'),$Zahl);
?>
Ist strlen($zahl)>1 dann wirst Du Dich wohl den Regulären Ausdrücken zuwenden.
Gruß aus Berlin!
eddi
Hi!
Das ist im Prinzip das was ich meine.
Nur war das nur ein Beispiel mit den Zahlen.
Es handelt sich in der Regel um normale Wörter oder Links die in der Datei stehen.
Gruss
Hi Tim,
dann arbeite mit der von "AllesMeins" vorgeschalgenen Methode und achte bei der Erstellung der Datei darauf, daß jeder Ausdruck einzelt eine Zeile einnimmt, lies die Datei mit file() in ein Datenfeld und frage mit if(!in_array($Zahl,$file_array)) ab.
Gruß aus Berlin!
eddi