Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Problem: Datei öffnen oder anlegen mit PHP, je nach Eingabe
Frage
Hallo,
Mit der folgenden Datei will ich eine Datei öffnen oder anlegen, je nachdem ob es die Datei schon gibt, oder nicht. Es klappt auch. Wenn man einen bestehenden Dateinamen (in eine Startseite mit Formular) eingibt wird diese ("dateiname") geöffnet und das Wort "Anhang" angefügt. Gibt es die Datei nicht, so wird sie angelegt und "Inhalt" eingefügt. Trotzdem erhalte ich im letzten Fall immer eine Fehlermeldung im browser, Fehler in Zeile 5 bei $fp = fopen("$zu_oeffnen","r+"); dass die Datei nicht existiert. Weiß jemand warum dies so ist?
Vielen Dank, Klaus
..........listing...........
<?
$zu_oeffnen = $_POST["dateiname"];
$fp = fopen("$zu_oeffnen","r+");
if ($fp<>0) // Gibt es die Datei?
{
$fneu = fopen("$zu_oeffnen","a"); // Öffnet und hängt an
flock ($fneu,2);
fputs ($fneu,"Anhang");
flock ($fneu,3);
fclose ($fneu);
}
else
{
$fneu = fopen("$zu_oeffnen","w+"); //Öffnet und schreibt neu
flock ($fneu,2);
fputs ($fneu,"Inhalt");
flock ($fneu,3);
fclose ($fneu);
}
?>
Antwort 1 von semi
Verwende 'a+'
'r+' legt keine Datei an, wenn sie nicht exisiert.
'r+' legt keine Datei an, wenn sie nicht exisiert.
Antwort 2 von php_neuling
Hallo Michael,
danke für den Tip, hat aber nicht gefunzt. Ich habe aber die Lösung selber entdeckt. Mit der Funktion "is_file" kann man checken, ob die Datei existiert, dann klappts.
Trotzdem Danke, Klaus
danke für den Tip, hat aber nicht gefunzt. Ich habe aber die Lösung selber entdeckt. Mit der Funktion "is_file" kann man checken, ob die Datei existiert, dann klappts.
Trotzdem Danke, Klaus