Перевірка наявності файлу PHP file_exists

164 0 Новини високих технологій

Широке застосування баз даних не позбавило звичайну файлову систему значення. Запис і читання файлів як і раніше займають значиме місце в програмуванні. Алгоритми перевірки наявності файлу дозволяють уникнути помилок при виконанні коду. Функція PHP file_exists пропонує просте рішення для перевірки існування файлу або каталогу.

Синтаксис і використання функції file_exists

Результат функції - true або false. Єдиний параметр - ім'я файлу і шлях до нього. Результат функції кешується тому, якщо PHP file_exists не працює, а файл насправді існує, то це помилка алгоритму.


При використанні функції clearstatcache() можна уникнути багатьох помилок у дослідженні стану доступною файлової системи. Але слід мати на увазі, що на неіснуючому файлі PHP file_exists буде видавати false до тих пір, поки шуканий файл не буде створено, а потім буде видавати true навіть коли він був уже знищений. Коректне поєднання функції clearstatcache() і функцій, пов'язаних з файловою системою (наприклад, is_writable(), is_readable(), is_executable(), is_file(), is_dir() та інших), дозволяє уникнути «прихованих» помилок виконання сценаріїв. Кешування значно покращує продуктивність системи, але в деяких випадках на важливих файлах може створити реально недостовірний результат і викликати серйозну, важко обнаруживаемую помилку виконання.

Параметр функції PHP file_exists

PHP може бути встановлений на різних обчислювальних платформах, а отже, іменування шляхів і файлів може бути різним. Документація декларує, що при перевірці PHP орієнтується на UID/GID, а не на ефективні ідентифікатори. Розробляючи алгоритм використання PHP file_exists, слід звернути увагу не тільки на правильні слеш (прямий чи зворотний), кодування шляху до файлу та ім'я самого файлу, але і перевірити наявність потрібного регістру, правильних символів, прав доступу та інших обставин.


Перевірка наявності файлу PHP file_exists
На негативний результат може вплинути кодування файлу скрипта, може знадобитися перетворення рядка символів, отриманої з бази даних.

Застосування функції на практиці

Області застосування скриптів PHP істотно відрізняються. Не можна сказати, що PHP file_exists використовується виключно для зберігання системної інформації, файлів даних, об'єктів або динамічно сформованих зображень. Нерідкі випадки використання потокового формування великих обсягів тимчасової інформації, які не ефективно відразу поміщати в базу даних. На сайт стікатиметься інформація від різних відвідувачів, і тільки після попередньої обробки за певний проміжок часу потрібна інформація повинна бути поміщена в таблиці бази даних.
Перевірка наявності файлу PHP file_exists
Читання системних файлів може викликати кешування при множині оновленні сторінки або неправильних діях відвідувача. Ситуацій в реальності досить багато, але при правильному використанні функції вона дозволяє писати безпечний і надійний код.