Отчет по лабораторной работе №14
«Файлы в PHP»
Вариант 16
Цель:
1. Изучить основы использования файлов в РНР для сохранения и восстановления данных.
2. Применить полученные знания для написания сценариев на PHP.
Содержание отчета:
1. Титульный лист.
2. Теоретическая часть.
3. Обязательно указать номер варианта, текст индивидуального задания, тестовые данные, разработать блок-схему для реализации алгоритма решения индивидуального задания.
4. Копии экрана, иллюстрирующие работу сценариев PHP.
5. Коды разработанных сценариев.
Теоретическая часть
Работа с файлами.
Запись данных в файл реализуется в три шага:
1) Открытие файла. Если файл еще не существует, его потребуется создать.
2) Запись данных в файл.
3) Закрытие файла.
Аналогично, считывание данных из файла также связано с выполнением трех шагов:
1) Открытие файла. Если файл не может быть открыт (например, он не существует), эта ситуация должна быть распознана и следует предусмотреть корректный выход из нее.
2) Считывание данных из файла.
3) Закрытие файла.
Открытие файла.
Для открытия файла в среде РНР используется функция fopen(). При открытии файла необходимо указать режим его использования.
$fp = fopen("/orders/orders.txt", "w');
Режимы файлов.
Режим | Значение |
r | Режим чтения — Открытие файла для чтения, начиная с начала файла. |
r+ | Режим чтения — Открытие файл для чтения и записи, начиная с начала файла. |
w | Режим записи — Открытие файла для записи, начиная с начала файла. Если файл уже существует, его содержимое удаляется. Если файл не существует, предпринимается попытка его открытия и в результате файл создается. |
w+ | Режим записи — Открытие файла для записи и чтения, начиная с начала файла. Если файл уже существует, его содержимое удаляется. Если файл не существует, предпринимается попытка его открытия и в результате файл создается. |
a | Режим добавления — Открытие файла только для добавления (записи), начиная с конца существующего содержимого, если оно имеется. Если файл не существует, предпринимается попытка его открытия и в результате файл создается. |
a+ | Режим добавления — Открытие файла для добавления (записи) и чтения, начиная с конца существующего содержимого, если оно имеется. Если файл не существует, предпринимается попытка его открытия и в результате файл создается. |
b | Двоичный режим — Используется в сочетании с одним из остальных режимов. Его указание требуется, если файловая система различает двоичные и текстовые файлы. Операционная система Windows различает эти файлы, а UNIX - нет. |
Запись в файл.
Запись в файл в РНР выполняется сравнительно просто. Для этого можно воспользоваться любой из функций fwrite() (file write — запись в файл) или fputs() (file put string — запись строки в файл); fputs() — это псевдоним функции fwrite(). Функцию fwrite() можно вызвать следующим образом:
fwrite($fp, $outputstring);
Закрытие файла.
По завершении использования файла его следует закрыть при помощи функции fclose(), как показано ниже:
fclose($fp);
Выполнение задания
Вариант 16.
Дан текстовый файл. Перенесите в новый файл все строки, не содержащие заданного слова.
Тестовые данные
№ | Содержание файла | Результат |
Привет! Привет! Как дела? Еще не родила:) А че так?;) Ну не знаю.... | Как дела? Еще не родила:) А че так?;) Ну не знаю.... | |
Приветик) Здарова. Как делишки?) Норм. Твои как? Охренительно, сегодня 2 лабы по вебу залила. Теперь счастлива как слон))) Мда.... Мало тебе для счастья надо.... Чего злой такой? Не задавай тупых вопросов - не получишь грубых ответов! | Приветик) Здарова. Как делишки?) Мда.... Мало тебе для счастья надо.... Чего злой такой? Не задавай тупых вопросов - не получишь грубых ответов! |
Блок-схема для реализации алгоритма «Реализация индивидуального задания»
Копии экрана с работающим приложением:
Листинг программного кода:
index.html:
<HTML>
<HEAD>
<META http-equiv=Content-Type content=text/html; charset=utf8>
<TITLE>Лабораторная работа №14</TITLE>
</HEAD>
<BODY>
<center>
<h1> Введите текст</h1>
<FORM name="form1" action="zapis.php" method="POST">
<textarea cols="50" rows="20" name="text"></textarea>
<br>
<input type="submit" name="but1" value="Перейти к записи" >
</FORM>
</center>
</BODY>
</HTML>
Zapis.php
<HTML>
<HEAD>
<META http-equiv=Content-Type content=text/html; charset=utf8>
<TITLE>Лабораторная работа №14</TITLE>
</HEAD>
<BODY>
<?php
$fp=fopen("file.txt", "w");
$zapis = fputs($fp, $_POST['text']);
if($zapis) echo 'Данные в файл успешно занесены.';
else echo 'Ошибка при записи в файл.';
fclose($fp);
echo '<form name="form1" action="chtenie.php" method="POST">';
echo '<br><input type="submit" name="but1" value="Перейти к чтению">';
echo '</form>';
?>
</form>
</BODY>
</HTML>
Chtenie.php
<HTML>
<HEAD>
<META http-equiv=Content-Type content=text/html; charset=utf8>
<TITLE>Лабораторная работа №14</TITLE>
</HEAD>
<BODY>
<?php
echo "<b>Информация, которая содержится в файле file.txt:</b> <br>";
include "file.txt";
echo '<form name="form1" action="zadanie.php" method="POST">';
echo '<br><strong>Введите слово которое необходимо исключить:</strong><br>';
echo '<input type="text" size =10 name="a"> <br>';
echo '<br><input type="submit" name="but1" value="Перейти к индивидуальному заданию">';
echo '</form>';
?>
</form>
</BODY>
</HTML>
Zadanie.php
<HTML>
<HEAD>
<META http-equiv=Content-Type content=text/html; charset=utf8>
<TITLE>Лабораторная работа №14</TITLE>
</HEAD>
<BODY>
<?php
$word =$_POST['a'];
$source = file('file.txt');
for ($i = 0, $L = count($source); $i < $L; $i++) {
if (false!== strpos($source[$i], $word))
unset($source[$i]);
}
file_put_contents('file1.txt', join("\n", $source));
echo '<strong>Строки не содержащие слова '.$word.': </strong><br>';
include "file1.txt";
?>
</form>
</BODY>
</HTML>