2016-11-23 2 views
-1

Я хочу, чтобы создать новый файл .txt с помощью PHP, как это:PHP не создавать новый файл без предупреждения: «Нет такого файла»

$file = 'students.txt'; 
    // opens file to load the current content 
    $current = file_get_contents($file); 
    // add new content to file 
    $current .= $_POST["name"] . " : " . $_POST["grade"] . PHP_EOL; 
    // writes content to file 
    file_put_contents($file, $current); 

Он отлично работает, но я получаю предупреждение, когда файл не существует в начале. Это не проблема, потому что php создает файл в этом случае, но как я могу предотвратить появление этого предупреждающего сообщения на экране?

+1

Ну, очевидно, вы можете просто _test_, если файл существует. Или вы можете «коснуться» его. – arkascha

+1

'$ current = ''; if (file_exists ($ file)) {$ current = file_get_contents ($ file); } ' –

+1

Я не рекомендую подавлять ошибки/предупреждение. Вы могли бы просто проверить, существует ли файл до его открытия с помощью' is_file', но '$ current = @file_get_contents ($ file);' должен подавлять предупреждение –

ответ

1

использование Еореп в режиме a (Append) чтения this

// opens file to load the current content 
if ($file = fopen('students.txt', 'a')){ 
    // add new content to file and writes content to file 
    fwrite($file ,$_POST["name"] . " : " . $_POST["grade"] . PHP_EOL); 
    // close file 
    fclose($file); 
    exit(0); 
} 
else { 
    echo "Cannot open file"; 
    exit(1); 
} 
0

Используйте опцию FILE_APPEND для file_put_contents() для добавления к файлу, так что вам не придется читать его первым. При необходимости он создаст файл.

$file = 'students.txt'; 
$current = $_POST["name"] . " : " . $_POST["grade"] . PHP_EOL; 
// writes content to file 
file_put_contents($file, $current, FILE_APPEND); 

 Смежные вопросы

  • Нет связанных вопросов^_^