четвер, 12 лютого 2009 р.

Збереження тексту у файл: приклад PHP та обгортка «Корпорації 2»

Часто доводиться зберігати текстову інформацію у файл. Іноді цю просту операцію реалізують заплутано, хоча для базового запису достатньо кількох рядків 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, якої в цьому прикладі немає.

Немає коментарів:

Навантажувальне тестування K2 ERP: що перевірити до пікової зміни

Демонстраційна база швидко відкривається, презентація переконлива, а справжня перевірка починається перед відправленням машин: склад проводи...