Text-Datei in ein Array einlesen und auf ein bestimmtes Wort darin überprüfen

freaking out

Grünschnabel
HI!
Ich hoffe hier kann mir vielleicht wer helfen..
Das möchte ich bewirken:
1.)Ich möchte eine txt-Datei in ein Array einlesen.
2.)Ich möchte überprüfen obe ein bestimmtes Wort in diesem Array enthalten ist.

Das ist mein bisheriger Code:

PHP:
<?php
$dvoc=$HTTP_POST_VARS["dvoc"];
$svoc=$HTTP_POST_VARS["svoc"];
$id=1;
 
$filename = "files.txt";
$datei = fopen( $filename, "r" );
$inhalt = fread( $datei, filesize( $filename ) );
$files = $inhalt;
fclose( $datei );
 
while($id<=$files)
{
$filename2 = "vocs.txt";
$vocs= file($filename2);
if(in_array($svoc, $vocs))
{
echo "Dieses Wort befindet sich bereits in der Liste und wurde daher nicht erneut eingetragen!";
exit();
}
$id++;
}
echo "Danke für Ihren Eintrag!";
# hier kommen dann die Befehle zur erstellung einer txt-Datei, in der das neue Wort steht!
?>

in "files.txt" steht die Anzahl an txt-Dateien bzw. an Wörtern, die im Array sind..
in "vocs.txt" steht pro Zeile ein Wort..

Hierzu auch noch eine Frage: Wenn ich mit fwrite() in diese txt-Datei schreiben will, wie mache ich einen Absatz bevor ich das nächste Wort schreiben lasse (mit "\n" ?)

und:

Irgendwie wird - mit diesem Code - bei mir nicht wirklich überprüft ob eines der Worte aus dem Array einem bestimmten Wort gleicht sonden nur jeweils das lezte Wort aus dem Array...

Ich hoffe es kann mir jemand von euch helfen!

Danke schon mal im Vorraus!
LG
freaking out
 
Solltest Du in Deinem Schleifencode nicht auch mal was unterschiedliches machen?
Das sieht für mich so aus, als ob Du ganz oft das selbe tust.

\n ist richtig, um einen Zeilenumbruch zu machen, mit "\n" und nicht '\n', das ist wichtig!

Wozu brauchst Du die Anzahl Datensätze in einer extra Datei? Oder habe ich das falsch verstanden? Vielleicht schreibst Du mal ein Beispiel für den Aufbau Deiner Textdatei(en).

So würde ich es (in Kurzform) machen (wie immer ohne Gewähr, da hier im Editor geschrieben):
PHP:
$v=file('vocs.txt');
if (array_search($neuerEintrag,$v)===false) {
   //Gibts nicht, also eintragen
} else {
  //Gibts schon, nicht neu eintragen
}
 
Also ich hab hier den eintrag mal geändert weil i di php-datei mit einer anderen verwächselt hab... aba gut.. hier mal der neue komplette code...
P.S: Ich hab den Fehler gelöst(mit etwas fremder hilfe ;) )
PHP:
<HTML>
<HEAD>
<TITLE>Spanisch Vokabel Trainer</TITLE>
<LINK rel="stylesheet" type="text/css" href="style.css">
</HEAD>
<BODY>
<DIV ALIGN="center">
<H1>Vokabel Hinzufügen</H1></DIV><BR>
<DIV align="right"><A HREF="index.php"><FONT color="#00CC00">HOME</FONT></A></DIV><BR>
<?php
$dvoc=$HTTP_POST_VARS["dvoc"];
$svoc=$HTTP_POST_VARS["svoc"];
if($dvoc=="" or $svoc=="")
{
echo "<DIV align=\"center\">
<FORM method=\"post\">
<INPUT type=\"text\" size=\"40\" maxlength=\"40\" value=\"Vokabel auf Deutsch\" name=\"dvoc\" onFocus=\"this.form.dvoc.value=''\" class=\"feld\"><BR>
<INPUT type=\"text\" size=\"40\" maxlength=\"40\" value=\"Vokabel auf Spanisch\" name=\"svoc\" onFocus=\"this.form.svoc.value=''\" class=\"feld\"><BR>
<FONT size=\"-1\">Bitte nur <B>ein</B> Wort por Eingabefeld eingeben!</FONT>
<P><INPUT type=\"submit\" value=\"Vokabel Eintragen\" class=\"button\"></P>
</FORM>
</DIV>";
}
elseif($dvoc=="Vokabel auf Deutsch" or $svoc=="Vokabel auf Spanisch")
{
echo "Sie haben vergessen ein oder vielleicht sogar beide Vokabel anzugeben!<BR>Bitte füllen Sie alle Eingabefelder aus.<BR><DIV align=\"center\"><A HREF=\"ad.php\">zurück</A></DIV>";
}
else
{
$dvoc=$HTTP_POST_VARS["dvoc"];
$svoc=$HTTP_POST_VARS["svoc"];
$id=1;
 
$filename = "files.txt";
$datei = fopen( $filename, "r" );
$inhalt = fread( $datei, filesize( $filename ) );
$files = $inhalt;
fclose( $datei );
 
while($id<=$files)
{
$filename2 = "vocs.txt";
$datei2 = fopen( $filename2, "r" );
$inhalt2 = fgetcsv ( $datei2, 40 );
$rvoc = $inhalt2;
fclose( $datei2 );
if(in_array( $svoc, $rvoc))
{
echo "Dieses Vokabel befindet sich bereits in der Liste und wurde daher nicht erneut eingetragen!";
exit();
}
$id++;
}
 
$id2 = $files+1;
 
$filename3 = "files.txt";
$datei3 = fopen( $filename3, "r+" );
fwrite( $datei3, "$id2");
fclose( $datei3 );
 
$filename4 = "dvoc/d";
$filename4.=$id2;
$filename4.=".txt";
$datei4 = fopen( $filename4, "w" );
fwrite( $datei4, "$dvoc");
fclose( $datei4 );
 
$filename5 = "svoc/s";
$filename5.=$id2;
$filename5.=".txt";
$datei5 = fopen( $filename5, "w" );
fwrite( $datei5, "$svoc");
fclose( $datei5 );
 
$filename6 = "vocs.txt";
$datei6 = fopen( $filename6, "a" );
fwrite( $datei6, ",$svoc");
fclose( $datei6 );
 
echo "Danke für Ihren Eintrag!";
}
?>

Dieses Problem habe ich Gott-sei Dank schon gelöst!

allerdings is ein weiteres Problem in einer neuen php-datei aufgetaucht..

vielleicht kann mir hier jemand helfen
siehe thema "Hilfe bei Fehlersuche in einer simplen php-Datei"
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück