Читання даних з файлу

 

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