2012-03-24 3 views
3

Возможно ли писать файл только на PHP, если он не существует?fwrite, если файл не существует?

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

Так что, если файл существует код не будет писать код, но если файл не существует, он будет создан новый файл и написать код

Спасибо заранее!

ответ

6

Вы можете использовать fopen() с режимом x вместо w, который сделает Еореп неудачу, если файл уже существует. Преимущество такого типа сравнения по сравнению с использованием file_exists заключается в том, что он не будет вести себя неправильно, если файл создается между проверкой наличия и фактическим открытием файла. Недостатком является то, что он (несколько странно) генерирует E_WARNING, если файл уже существует.

Другими словами (с помощью комментария @ ThiefMaster ниже), что-то вроде;

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

Я думаю, вам нужно '@fopen (...)' для подавления предупреждения. – ThiefMaster

+0

@ThiefMaster Спасибо, мой PHP, по-видимому, ржавый, когда я забыл про _that_ :) –

+0

Спасибо, что я искал возраст для этого кода :) –

4

Проверьте файл_exists ($ filename), если файл существует до того, как вы выполните код.

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

Создал переменную с именем $ file. Эта переменная содержит имя файла, который мы хотим создать.

Используя функцию is_file PHP, мы проверяем, существует ли файл уже или нет.

Если is_file возвращает логическое значение FALSE, то наше имя файла не существует.

Если файл не существует, мы создаем файл, используя функцию 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); 
} 
Смежные вопросы