2012-03-24 5 views
3

Est-il possible d'écrire uniquement un fichier en PHP s'il n'existe pas?fwrite si le fichier n'existe pas?

$file = fopen("test.txt","w"); 
echo fwrite($file,"Some Code Here"); 
fclose($file); 

Donc, si le fichier existe le code ne sera pas écrire le code mais si le fichier n'existe pas, il crée un nouveau fichier et d'écrire le code

Merci à l'avance!

Répondre

6

Vous pouvez utiliser fopen() avec un mode de x au lieu de w, qui fera échouer fopen si le fichier existe déjà. L'avantage de vérifier comme ceci comparé à l'utilisation de file_exists est qu'il ne se comportera pas mal si le fichier est créé entre la vérification de l'existence et l'ouverture effective du fichier. L'inconvénient est que cela (un peu bizarrement) génère un E_WARNING si le fichier existe déjà. En d'autres termes (avec l'aide du commentaire de @ ThiefMaster ci-dessous), quelque chose comme:

$file = @fopen("test.txt","x"); 
if($file) 
{ 
    echo fwrite($file,"Some Code Here"); 
    fclose($file); 
} 
+1

Je suppose que vous avez besoin de '@fopen (...)' pour supprimer l'avertissement lancé. – ThiefMaster

+0

@ThiefMaster Merci, mon PHP est apparemment rouillé quand j'ai oublié _that_ :) –

+0

Merci J'ai cherché des âges pour ce code :) –

4

Vérifiez avec file_exists ($ filename) si le fichier existe avant d'exécuter votre code.

if (!file_exists("test.txt")) { 
    $file = fopen("test.txt","w"); 
    echo fwrite($file,"Some Code Here"); 
    fclose($file); 
} 
0

Création d'une variable appelée $ file. Cette variable contient le nom du fichier que nous voulons créer.

En utilisant la fonction is_file de PHP, nous vérifions si le fichier existe déjà ou non.

Si is_file renvoie une valeur FALSE booléenne, alors notre nom de fichier n'existe pas.

Si le fichier n'existe pas, nous créons le fichier en utilisant la fonction file_put_contents.

//The name of the file that we want to create if it doesn't exist. 
$file = 'test.txt'; 

//Use the function is_file to check if the file already exists or not. 
if(!is_file($file)){ 
    //Some simple example content. 
    $contents = 'This is a test!'; 
    //Save our content to the file. 
    file_put_contents($file, $contents); 
}