Teilstringvergleich mit Inhalt aus txt-Datei und neues Speichern in gleiche Datei

JFranz

Grünschnabel
Hallo und schönen Tag,

bin schon fast am Verzweifeln und kann mir nicht vorstellen das das so
schwehr sein soll, zu meinem Problem:

Ich hab einen String den ich mir aus einem FormSelectFeld übergeben lasse.

list ($name, $id) = split ("#", $wahl);
$id = stripslashes($id);
$id = str_replace("\r","",$id);
$id = str_replace("\n","",$id);

Ergebnis: z.B. $id=#1099576661.txt es sollten meines Wissens alle störenden Zeichen
entfernt worden sein. Oder hab ich noch was vergessen?

Nun lese ich meine TXT Datei

Angebot 2#1099571801.txt
angebot3#1099576661.txt
Angebot 1#1099570181.txt

Zeilenweise ein und will auf das Vorkommen des String
Prüfen und falls der String nicht vorhanden ist die Zeile wieder in ein Datei schreiben
und diese dann Später wieder in die Richtige Datei umbenenne:
Leider geht der Stringvergleich nicht richtig hab ich was übersehen ? :(

Hier mal mein Skript bis jetzt:

PHP:
$id="#1099576661.txt"; //wird durch Form übergeben

$alt = fopen("meineDatei.txt","r");
if(file_exists($alt))      //wenn vorhanden
{ 
    $neu = fopen("meineDateineu.txt","w+");  //neuanlegen
     
     while(!feof($alt))      //solange nicht das Ende erreicht ist
     { 
        $zeile = fgets($alt);
        if ( strcasecmp($alt,$id)==0 )    //wenn String nicht gleich
           {
           fputs($neu,$zeile);           //schreibe in meineDateineu
          }
      } 
fclose($alt); 
unlink("meineDatei.txt");                 //löschen der Alten Datei
rename($neu, "meineDatei.txt");     //umbenennen
fclose($neu);
}

meine neue(alte) TXT-Datei soll jetzt dann so aussehen

Angebot 2#1099571801.txt
Angebot 1#1099570181.txt

Danke schonmal für eure Hilfe.
 
Zuletzt bearbeitet:
Hallo,
du hast deine ganzen Codesequenzen nicht richtig angegeben und ohne syntexhighlight hab ich keinen bock das alles zu lesen. Aber eins kann ich dir Beantworten # ist kein erlaubtes Zeichen unter Windows und unter allen andern Plattformen glaub ich auch. Außerdem hast du in irgendeinem if Ding keinen Regel geschrieben sondern nur if($var) das find ich auch sehr komisch.
Mach das mit dem Syntex mal richtig dann gucke ich weiter.
 
Hallo Security,

also das # - Zeichen ist angeblich als Trennzeichen zur späteren Zerlegung in einem String erlaubt, meine anderen skripte gehen damit auch.
Hab die Codesequenzen nun angegeben, bitte schau nochmal drauf.

Danke schonmal
 
Ich meinte auch das # kein erlaubtes Zeichen für dateinamen ist, im PHP-code nutzte ich das auch immer zu trennen. So und jetzt zu deinem Problem du gibst bei fgets($alt) nicht an wieviel du von der Datei auslesen willst, denn wenn ich mich recht erinnere liest du so garnichts aus.
So jetzt sollte es gehen, wenn dann poste noch mal den ganzen und richtigen Code und stell den Status auf erledigt, das vergessen nämlich alle.
 
Zurück