2013-12-14 3 views
10

Ich versuche, Dateien zu erstellen und den Inhalt dynamisch zu schreiben. Unten ist mein Code.PHP erstellen Sie eine Datei, wenn nicht existiert

$sites = realpath(dirname(__FILE__)).'/'; 
$newfile = $sites.$filnme_epub.".js"; 

if (file_exists($newfile)) { 
    $fh = fopen($newfile, 'a'); 
    fwrite($fh, 'd'); 
} else { 
    echo "sfaf"; 
    $fh = fopen($newfile, 'wb'); 
    fwrite($fh, 'd'); 
} 

fclose($fh); 
chmod($newfile, 0777); 

// echo (is_writable($filnme_epub.".js")) ? 'writable' : 'not writable'; 
echo (is_readable($filnme_epub.".js")) ? 'readable' : 'not readable'; 
die; 

Es erstellt jedoch nicht die Dateien.

Bitte teilen Sie Ihre Antworten und helfen. Vielen Dank!

+0

Ich hatte gerade das gleiche Problem, ich dachte, ich habe versucht, eine Datei mit ungültigem Namen>. Format ('Ymd H: i: s') wie eine dumme – erwan

Antwort

12

Versuchen Sie es mit:

$fh = fopen($newfile, 'w') or die("Can't create file"); 

zum Testen, wenn Sie eine Datei erstellen können oder nicht.

Wenn Sie die Datei nicht erstellen können, liegt das wahrscheinlich daran, dass das Verzeichnis vom Webserver-Benutzer nicht beschreibbar ist (normalerweise "www" oder ähnlich).

Führen Sie eine chmod 777 folder in den Ordner, den Sie die Datei erstellen möchten, und versuchen Sie es erneut.

Funktioniert es?

+0

es ist in Ordnern nicht im Root-Ordner erstellt .... danke – shyamkarthick

+1

Lesen Sie die Antwort noch einmal. Ich habe nichts über Root-Ordner gesagt. Nehmen wir an, Sie haben einen Benutzernamen wie "bob". Der Webserver läuft als völlig anderer Benutzer (sagen wir "www"). "www" kann nicht die Ordner "bob" schreiben, es sei denn: 1) "www" wird zur Gruppe "bob" hinzugefügt und der Ordner hat mindestens 775 Berechtigungen. 2) Sie ändern den Besitzer des Ordners von "bob" zu "www" (mit 'chown'). 3) Der Ordner ist von jedem Benutzer beschreibbar (er hat 777 Berechtigungen, Sie können sie mit 'chmod' ändern). –

+2

Setzen Sie niemals Ihre Ordner- oder Dateiberechtigungen auf 777. Weitere Informationen finden Sie in diesem Beitrag (http://superuser.com/a/273533/157802). –