2013-12-14 17 views
10

Próbuję tworzyć pliki i dynamicznie zapisywać ich zawartość. Poniżej znajduje się mój kod.Utwórz plik, jeśli nie istnieje

$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; 

Jednak nie tworzy plików.

Proszę podzielić się odpowiedziami i pomocą. Dzięki!

+0

Po prostu miałem ten sam problem, doszedłem do wniosku, że próbowałem stworzyć plik o nieprawidłowej nazwie>. <, Np. $ Fname = $ Datetime-> format ("Ymd H: i: s") jak głupi – erwan

Odpowiedz

12

Spróbuj użyć:

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

do testowania, czy można utworzyć plik istnieje, czy nie.

Jeśli nie możesz utworzyć pliku, prawdopodobnie jest to spowodowane tym, że katalog nie może być zapisany przez użytkownika serwera WWW (zazwyczaj "www" lub podobny).

Wykonaj chmod 777 folder do folderu, w którym chcesz utworzyć plik, i spróbuj ponownie.

Czy to działa?

+0

utworzone wewnątrz foldery nie w folderze głównym .... dzięki – shyamkarthick

+1

Przeczytaj odpowiedź jeszcze raz. Nie powiedziałem nic o folderze głównym. Załóżmy, że masz nazwę użytkownika podobną do "bob". Serwer internetowy działa jako zupełnie inny użytkownik (powiedzmy "www"). "www" nie może pisać folderów "bob", chyba że: 1) "www" zostanie dodane do grupy "bob", a folder ma przynajmniej 775 uprawnień. 2) Zmieniasz właściciela folderu z "bob" na "www" (używając 'chown'). 3) Folder jest zapisywany przez dowolnego użytkownika (ma 777 uprawnień, możesz je zmienić za pomocą 'chmod'). –

+2

Nigdy nie ustawiaj uprawnień do folderów ani plików na 777. Więcej informacji znajdziesz [to ogłoszenie] (http://superuser.com/a/273533/157802). –

Powiązane problemy