Часто доводиться зберігати текстову інформацію у файл. Іноді цю просту операцію реалізують заплутано, хоча для базового запису достатньо кількох рядків PHP.
У «Корпорації 2» ми зводили такий виклик до одного рядка через власний метод save_textfile.
Запис у файл засобами PHP
echo 'Записываемый файл: '.$filename.'<br />
';
if (is_writable(trim($filename))) { // Убеждаемся что файл доступен и существует для записи.
$savesize=file_put_contents(trim($filename), $text_data);
}else {
echo "Файл $filename недоступен для записи";
}
return $savesize;Виклик у «Корпорації 2»
$GLOBALS["c"]->save_textfile('Название файла','Текст, который хотим сохранить в файл');Важливі деталі прикладу
У гілці, де файл недоступний для запису, змінна $savesize у самому фрагменті не отримує значення. Тому перед поверненням результату потрібно подбати про обробку цього випадку.
is_writable перевіряє, чи існує вказаний об’єкт і чи доступний він для запису. Якщо нового файла ще немає, така перевірка його імені не дозволить перейти до запису в наведеній гілці коду.
Водночас file_put_contents може створити файл, а наявний файл за замовчуванням перезаписує. Успішний виклик повертає кількість записаних байтів, помилка — false. Перевірка має бути строгою, щоб не сплутати помилку з успішним записом нульової кількості байтів.
Власна обгортка спрощує місце виклику. Її поведінку під час помилок і перевірку шляху визначає реалізація методу save_textfile, якої в цьому прикладі немає.
Немає коментарів:
Дописати коментар