Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP_Барчук_довідник.doc
Скачиваний:
3
Добавлен:
31.08.2019
Размер:
1.14 Mб
Скачать

10.2 Читання файлу

Для читання файлів в PHP є функції fread() і filesize(). Вони визначаються нижче. fread (вказівник_ресурса, довжина) - функція, яка використовується для читання вмісту файлу. Читає вказану кількість байтів "довжина" з файлу " вказівник_ресурса ". Читання зупиняється, коли буде прочитано задану кількість байтів ("довжина"), або буде досягнутий маркер EOF (end of file).

Функція вимагає два параметри - покажчик файлу, який створюється, коли файл відкривається за допомогою функції fopen(), і розмір, який визначає, яка частина вмісту буде лічена. fgetcsv(вказівник_ресурса, довжина, обмежувач) - функція, яка використовується для читання вмісту файлу і аналізу даних для створення масиву. Дані поділяються параметром-обмежувачем, заданим у функції. filesize(ім'я_файлу) - повертає розмір файлу. Якщо виникає помилка, функція повертає значення false.

Наступний приклад ілюструє, як прочитати весь вміст файлу: fileread.php

<?php

$filename = "C:/Documents and Settings/Administrator/MyFiles/myfile.txt";

$newfile = @fopen($filename, "r") or exit("Невозможно открыть файл!");

$file_contents = @fread($newfile, filesize($filename)) or exit("Неможливо прочитати вміст файлу!");

fclose($newfile);

?>

Припустимо, що текстовий файл numbers.txt існує та містить наступні дані:

numbers.txt -> 50,17,34,90

Наступний сценарій демонструє використання функції fgetcsv() для читання вмісту текстового файлу.

fileread.php

<?php

$filename = "C:/numbers.txt";

$newfile = @fopen($filename, "r") or exit("Could not open file");

$file_contents = @fgetcsv($newfile, filesize($filename),",")

or exit("Could not read file contents");

for ($i=0; $i < sizeof($file_contents); $i++){

echo $file_contents[$i];

echo "<br/>";

}

fclose($newfile);

?>

Після відкриття файлу функція fgetcsv() зчитує весь вміст файлу, створюючи масив - '$file_contents'. Третій параметр функції fgetcsv() визначає, що кожен елемент, відділений за допомогою коми ",", стане елементом нового масиву. Так як numbers.txt містить значення 50,28,34,90, то $file_contents [0] = 50, $ file_contents [1] = 28, $file_contents [2] = 34, $file_contents [3] = 90.

Після створення масиву значеннями можна маніпулювати за допомогою будь-якої з функцій для масивів PHP. У попередньому прикладі цикл for виконує ітерації на масиві $file_contents [ ] і виводить кожне число. Після завершення обробки файлу функція fclose() використовується для закриття відкритого файлу.

10.3 Запис у файл

PHP містить функцію fwrite () для запису файлів. Ця функція визначена нижче.

fwrite (аказывник_файлу, рядок) - записує вміст рядка в потік зазначеного файлу. Якщо задано аргумент length (довжина), запис буде зупинена після запису length байтів або досягнення кінця рядка.

Наступний приклад ілюструє, як записати весь вміст файлу: filewrite.php

<? $filename = "C:/Documents and Settings/Administrator/MyFiles/myfile.txt"; $newfile = @fopen($filename, "w") or exit ("Неможливо відкрити файл"); $file_contents = "Додайте цей рядок в текстовий файл"; fwrite($newfile, $file_contents); fclose($ newfile); ?>

У деяких випадках може знадобитися записати вміст існуючого файлу в новий файл.

Цей процес вимагає використання функцій fopen(), fread() і fwrite(). Відкривається перший файл, читається його вміст і записується в новий файл, який також був відкритий.

Наступний сценарій показує реалізацію такого процесу: filecopy.php

<? $fileAname = "C:/MyFiles/PHP/file1.txt"; $fileBname = "C:/MyFiles/PHP/file.txt"; $currentfile = fopen($fileAname, "r") or exit ("Неможливо відкрити файл"); $fileAcontents = fread($currentfile, filesize($fileAname)); $newfile = fopen($fileBname, "w"); fwrite($newfile, $ fileAcontents); fclose($newfile); fclose($currentfile); echo "Вміст файлу file1.txt скопійовано в файл file.txt"; ?>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]