Zum Inhalt springen

[php] if file exists-> else problem


Empfohlene Beiträge

moinsen,

ich habe folgendes problem und verzweifle gleich.

ich möchte falls eine datei existiert, etwas anhängen, falls sie nicht existiert, dann soll sie erstellt werden (klappt auch) und etwas in eine andere datei zusätzlich angehängt werden.

...das mache ich bis hier so:

...
$check_engine_topic_file = "blabla.dat"
if (file_exists($check_engine_topic_file))

{
$engine_topic_file = fopen("$check_engine_topic_file","a");
chmod ("$check_engine_topic_file", 0777);
fputs ($engine_topic_file, "$engine_topic_content");
fclose($engine_topic_file);
}
else
$engine_topic_file = fopen("$check_engine_topic_file","a");
chmod ("$check_engine_topic_file", 0777);
fputs ($engine_topic_file, "$engine_topic_new_content_file");
fclose($engine_topic_file);
$enginefile_read = fopen("file2.dat","a");
$content_index = "<li><a href=$labor-$topic_id.html>$topic_data[title]</a></li>";
fwrite($enginefile_read, "$content_index" );
fclose($enginefile_read);

...
[/PHP]

... nur macht das skript nicht was ich oben beschrieben habe, sondern macht immer dass, was nach else kommt, auch wenn die datei existiert. beim ersten zugriff auf die datei wird dann natürlich selbige erstellt, klappt ja wie gesagt, aber beim zweiten zugriff kommt dann noch zusätzlich die fehlermeldung:

Warning: fputs(): 39 is not a valid File-Handle resource in ...blabla apache..../reply.php on line 191

Warning: fclose(): 39 is not a valid File-Handle resource in ..bla bla../reply.php on line 192

:dontknow: was mach ich denn verdammt nochmal falsch?

(parse error machen verdammt schlechte laune wenn sie nicht verschwinden)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Tiny Boom

moinsen,

ich habe folgendes problem und verzweifle gleich.

ich möchte falls eine datei existiert, etwas anhängen, falls sie nicht existiert, dann soll sie erstellt werden (klappt auch) und etwas in eine andere datei zusätzlich angehängt werden.

...das mache ich bis hier so:

... nur macht das skript nicht was ich oben beschrieben habe, sondern macht immer dass, was nach else kommt, auch wenn die datei existiert. beim ersten zugriff auf die datei wird dann natürlich selbige erstellt, klappt ja wie gesagt, aber beim zweiten zugriff kommt dann noch zusätzlich die fehlermeldung:

Warning: fputs(): 39 is not a valid File-Handle resource in ...blabla apache..../reply.php on line 191

Warning: fclose(): 39 is not a valid File-Handle resource in ..bla bla../reply.php on line 192

:dontknow: was mach ich denn verdammt nochmal falsch?

(parse error machen verdammt schlechte laune wenn sie nicht verschwinden)

versuchs ma so:

...
$check_engine_topic_file = "blabla.dat"
if (file_exists($check_engine_topic_file))

{
chmod ($check_engine_topic_file, 0777);
$engine_topic_file = fopen($check_engine_topic_file,"a");
fputs ($engine_topic_file, $engine_topic_content);
fclose($engine_topic_file);
}
else
$engine_topic_file = fopen($check_engine_topic_file,"a");
chmod ($check_engine_topic_file, 0777);
fputs ($engine_topic_file, $engine_topic_new_content_file);
fclose($engine_topic_file);
$enginefile_read = fopen("file2.dat","a");
$content_index = "<li><a href=$labor-$topic_id.html>$topic_data[title]</a></li>";
fwrite($enginefile_read, $content_index );
fclose($enginefile_read);

...
[/PHP]

btw: welche zeile ist die zeile 192??

Link zu diesem Kommentar
Auf anderen Seiten teilen

so müsste es jetztz stimmen

...
$check_engine_topic_file = "blabla.dat"
if (file_exists($check_engine_topic_file))

{
chmod ($check_engine_topic_file, 0777);
$engine_topic_file = fopen($check_engine_topic_file,"a");
fputs ($engine_topic_file, $engine_topic_content);
fclose($engine_topic_file);
}
else
$engine_topic_file = fopen($check_engine_topic_file,"a");
if (!$engine_topic_file ) $engine_topic_file = fopen($check_engine_topic_file,"a");
chmod ($check_engine_topic_file, 0777);
fputs ($engine_topic_file, $engine_topic_new_content_file);
fclose($engine_topic_file);
$enginefile_read = fopen("file2.dat","a");
$content_index = "<li><a href=$labor-$topic_id.html>$topic_data[title]</a></li>";
fwrite($enginefile_read, $content_index );
fclose($enginefile_read);

...
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Tiny Boom

...
$check_engine_topic_file = "blabla.dat"
if (file_exists($check_engine_topic_file))

{
$engine_topic_file = fopen("$check_engine_topic_file","a");
chmod ("$check_engine_topic_file", 0777);
fputs ($engine_topic_file, "$engine_topic_content");
fclose($engine_topic_file);
}
else
$engine_topic_file = fopen("$check_engine_topic_file","a");
chmod ("$check_engine_topic_file", 0777);
fputs ($engine_topic_file, "$engine_topic_new_content_file");
fclose($engine_topic_file);
$enginefile_read = fopen("file2.dat","a");
$content_index = "<li><a href=$labor-$topic_id.html>$topic_data[title]</a></li>";
fwrite($enginefile_read, "$content_index" );
fclose($enginefile_read);

...
[/PHP]

... nur macht das skript nicht was ich oben beschrieben habe, sondern macht immer dass, was nach else kommt, auch wenn die datei existiert. beim ersten zugriff auf die datei wird dann natürlich selbige erstellt, klappt ja wie gesagt, aber beim zweiten zugriff kommt dann noch zusätzlich die fehlermeldung:

or machen verdammt schlechte laune wenn sie nicht verschwinden) [/b]

Direkt hinter else fehlt ein "(" und am Ende deines Codes ein ")". So wie du das schreibst gehört alles ab chmod, egal wie weit du es einrückst, nicht mehr zum Else-Zweig.

hth

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von gurkenpapst

ich glaube Reinhold meinte geschweifte Klammern, also


if ( Bedingung )
{
blabla
}
else
{
anderes bla
}
[/PHP]

zu der Sache mit dem ...not a valid File-Resource:

Überprüfe ob du den korrekten Pfad zur Datei hast

gruß gurkenpapst [/b]

ja klar. hätte man eigentlich auf den ersten blick sehen müssen :WD

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...