Warum schreibt die Datei, die ich schreiben möchte, "nicht vorhanden"?

8

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?

    
ShoeLace1291 15.12.2014, 04:32
quelle

3 Antworten

6

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

testen %Vor%

Sie können auch file_put_contents versuchen, da Sie mit dem Dateihandle nichts anderes machen.

%Vor%     
quickshiftin 18.12.2014, 19:51
quelle
0

Sie müssen set_item verwenden, um in die Konfigurationsdatei zu schreiben.

%Vor%

für Arrays:

%Vor%

Hier in Konfiguration .

    
John 15.12.2014 05:05
quelle
0

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

zu überschreiben

Für einzelne Artikel

%Vor%

Für Array-Element

%Vor%     
Sujendra Kumar 22.12.2014 07:31
quelle

Tags und Links