Ich habe eine benutzerdefinierte Konfigurationsdatei in meiner CI-Anwendung. Im Admin-Panel meiner Webanwendung möchte ich ein Formular haben, mit dem ich die Werte des Konfigurationsarrays der benutzerdefinierten Datei ändern kann. Mein Problem ist jetzt, dass die Funktion write_file immer false zurückgibt und ich weiß nicht warum. Ich bin ziemlich sicher, dass ich den Pfad in der Funktion richtig schreibe und das Konfigurationsverzeichnis nicht schreibgeschützt ist (das ist wamp, also windows). Die Datei existiert definitiv. Was mache ich falsch?
Dies ist application / controllers / config / assets.php
%Vor%Dies ist ein Screenshot der Datei an ihrem Speicherort im Windows Explorer.
Ich habe die folgenden Dateipfade in der Funktion write_file ausprobiert:
%Vor%Keiner der obigen Dateipfade hat funktioniert ... könnte es etwas anderes sein?
FYI: FCPATH = 'W: \ wamp \ www \ zeus \' und es wird vom vorderen Controller von CI definiert, um den Pfad dieser Datei zurückzugeben.
Update: Ich habe versucht, nur die native PHP-Version und es heißt, dass die Datei oder das Verzeichnis nicht existiert. Vielleicht benutze ich den falschen Weg. Was sollte es sein?
Die Antwort ist einfach: Sie übergeben einen ungültigen Modus, W , an fopen
. Es sollte ein Kleinbuchstabe w sein. Also, was passiert, wenn fopen
false
zurückgibt, dann übergibst du das an fwrite
anstatt an eine Ressource, was dazu führt, dass false
zurückgegeben wird.
Ändern Sie einfach
%Vor%bis
%Vor% Sie könnten auch das Ergebnis von fopen
Sie können auch file_put_contents
versuchen, da Sie mit dem Dateihandle nichts anderes machen.
Sie müssen set_item verwenden, um in die Konfigurationsdatei zu schreiben.
%Vor%für Arrays:
%Vor%Hier in Konfiguration .
Ich glaube nicht, dass Sie in der Datei config.php schreiben müssen. Anstatt in config.php
file zu schreiben, können Sie die CI-Konfigurationsklasse verwenden, um den Wert der Konfigurationsdatei wie unten
Für einzelne Artikel
%Vor%Für Array-Element
%Vor%Tags und Links php file codeigniter