Читання даних з файлу
Якщо ми хочемо прочитати дані з існуючих файлів, однієї функції fopen (), як і у випадку з записом даних, недостатньо. Вона лише повертає покажчик на відкритий файл, але не зчитує ні одного рядка з цього файлу. Тому для того, щоб прочитати дані з файлу, потрібно скористатися однією із спеціальних функцій: file, readfile, file_get_contents, fread, fgets і т.п.
Функція fread
Ця функція здійснює читання даних з файлу. Її можна використовувати і для читання даних з бінарних файлів, не побоюючись їх пошкодження. Синтаксис fread () такий:
string fread (покажчик на файл, довжина)
При виклику цієї функції відбувається читання даних довжини (у байтах), визначеної параметром довжина, з файлу, на який вказує покажчик на файл. Параметр покажчик на файл повинен бути реально існуючої змінної типу ресурс, що містить у собі зв'язок з файлом, відкритий, наприклад, за допомогою функції fopen (). Читання даних відбувається до тих пір, поки не зустрінеться кінець файлу або поки не буде прочитано зазначене параметром довжина число байтів.
У результаті роботи функція fread () повертає рядок із зчитаної з файлу інформації.
Як ви помітили, у цій функції параметр довжина - обов'язковий. Отже, якщо ми хочемо зчитати весь файл в рядок, потрібно знати його довжину. PHP може самостійно обчислити довжину зазначеного файлу. Для цього потрібно скористатися функцією filesize (ім'я файлу). У випадку помилки ця функція поверне false. На жаль, її можна використовувати тільки для отримання розміру локальних файлів.
Приклад. Прочитаємо вміст файлу my_file.html
<? Php
$h = fopen ("my_file.html", "r +");
// Відкриваємо файл на запис і читання
$content = fread ($h,filesize ("my_file.html"));
// Зчитуємо вміст файлу в рядок
fclose ($h); / / закриваємо з'єднання з файлом
echo $content;
// Виводимо вміст файлу
// На екран браузера
?>
Для того щоб вирахувати вміст бінарного файлу, наприклад, зображення, в таких системах, як Windows, рекомендується відкрити файл з допомогою прапора rb або йому подібних, що містять символ b в кінці.