2013-03-27 5 views
0

J'essaye de faire ceci enregistrer un dossier et il crée le dossier, mais il est toujours vide. Voici le code pour elle:PHP fwrite écrire le fichier vide

<?php 

$code = htmlentities($_POST['code']); 

$i = 0; 
$path = 'files/'; 
$file_name = ''; 

while(true) { 
    if (file_exists($path . strval($i) . '.txt')) { 
     $i++; 
    } else { 
     $name = strval($i); 
     $file_name = $path . $name . '.txt'; 
     break; 
    } 
} 

fopen($file_name, 'w'); 
fwrite($file_name, $code); 
fclose($file_name); 

header("location: index.php?file=$i"); 

?> 

répétai-je en code $ pour vous assurer qu'il n'était pas vide, et il n'a pas été. J'ai aussi essayé de remplacer

fwrite($file_name, $code); 

avec ceci:

fwrite($file_name, 'Test'); 

et il était encore vide. J'ai déjà écrit plusieurs fois dans des fichiers en PHP, mais je suis encore vraiment novice en PHP et je n'ai aucune idée de ce qui ne va pas. Quelqu'un pourrait-il me dire ce que je fais mal ou comment résoudre ce problème? Merci

Répondre

1

lecture/écriture à/à partir d'un fichier ou un flux nécessite une poignée de ressources:

$resource = fopen($file_name, 'w'); 
fwrite($resource, $code); 
fclose($resource); 

La poignée de ressources $resource est essentiellement un pointeur vers la ressource fichier/flux ouverte. Vous interagissez avec le handle de ressource créé, pas avec la représentation sous forme de chaîne du nom de fichier. Ce concept existe également avec cURL également. C'est une pratique courante en PHP, d'autant plus que PHP n'a pas supporté la POO quand ces méthodes sont apparues.

1

Jetez un oeil du samples sur php.net

+0

Oh, merci haha, j'ai réalisé que j'avais oublié de définir une variable pour le fichier que j'ai créé. – Addison

Questions connexes