Копии экрана,выполняющие работу сценариев.




Отчет по лабораторной работе №14

Дисциплина: «Web-программирование»

Тема: «Файлы в PHP»

Вариант №13

 

Выполнила: студентка группы 141003

Матвеева М.А..

Проверил:

Великая Я.Г.

Сунцова А.И.

URL для запуска сайта на выполнение:

 

https://172.23.64.64/ftp/10/1410063/lab14/

 

Белгород 2011

Теоретическая часть

В PHP хорошо реализовано множество функций для работы с файлами. С их помощью можно просматривать содержимое файлов, создавать новые файлы, удалять и редактировать их. Всё это можно реализовывать с помощью PHP. Другими словами в PHP файл легко открывается и редактируется.

fopen(): Эта функция открывает файловый дескриптор, для того чтобы могли производить какие-либо действия над этим файлом. Для каждого файла необходимо открывать «свой» дескриптор, то есть если мы хотим чтобы в нашем скрипте PHP с помощью функции fopen() открыл более одного файла, мы должны создавать для каждого «открытого» файла свой дескриптор. При завершении работы с файлом, необходимо закрывать дескриптор, для этого существует функция fclose().

Указатель – это место, откуда функция fopen() будет начинать работать с файлом. Если он будет в начале файла, и вы запишите данные в файл, то они будут записаны в начало файла, или например если указатель будет в конце файла, то данные запишутся в конец.

Синтаксис функции fopen():

Файловый дескриптор = fopen(путь к файлу или его имя, режим работы с файлом);

feof(): это функция проверяет, достигнут ли конец файла. При проведении операций над файлом, таких как чтение, он используется для проверки – достигнут ли конец файла. Пока не будет достигнут конец файла, функция возвращает False, а после того как PHP достигнет конца файла функция вернет значение True.

Синтаксис функции feof():

feof(Дескриптор);

fgets(): Она позволяет прочитать строку из файла и каждый последующий вызов этой функции будет возвращать последующие строки отбрасывая уже прочитанное, пока не будет достигнут конец файла.

Синтаксис функции fgets():

fgets(Дескриптор, Необязательный параметр указывающий длину данных которые необходимо прочитать из файла, его можно не указывать);

С помощью функции fopen() мы можем открыть файл, для его просмотра. Для этого используется режим «r».

Следует обратить внимание и запомнить, что в этом режиме запись в файл невозможна!

Также с помощью функции fopen() мы можем создавать новые файлы. Для этого нужно воспользоваться режимом «x». Чтобы записать данные в файл можно воспользоваться функцией fwrite().

Синтаксис функции fwrite():

fwrite(Дескриптор, Строка записываемая в файл);

Вот список всех режимов работы функции fopen():

· r – Режим чтения. Открывает файл только для чтения. Указатель переместится в начало файла.

· r+ – Режим чтения и записи. Открывает файл для чтения и записи. Указатель переместится в начало файла.

· w – Режим записи. Удаляет все данные в файле (или попросту создаёт новый файл с этим же именем) и переносит указатель в начало файла. Если файла не существует, создаёт новый.

· w+ – Режим чтения и записи. Удаляет все данные в и переносит указатель в начало файла. Если файла не существует, создаёт новый.

· a – Режим записи. Открывает файл только для записи. Указатель перемещает в конец файла.

· a+ – Режим чтения и записи. Открывает файл для чтения и записи. Указатель переместится в конец файла.

· x – Режим записи. Создаёт файл и переносит указатель в начало файла. Если файл уже существует, возникнет ошибка. Используя этот режим, следите за тем, чтобы такого файла не было.

· x – Режим чтения и записи. Создаёт файл и переносит указатель в начало файла. Если файл уже существует, возникнет ошибка. Используя этот режим, следите за тем, чтобы такого файла не было.

Иногда нам просто нужно получить содержимое файла, для этого в PHP есть более удобные и простые функции. Для того чтобы получить содержимое файла в виде массива используем функцию file().

Синтаксис функции file():

file(путь и имя файла);

При использовании этой функции, она вернет массив данных, каждый элемент которого будет строкой файла. Другими словами каждая новая строка файла будет отдельным элементом этого массива.

Если нас не устраивает получать данные в виде массива, в PHP есть возможность получить всё содержимое файла в виде строки. Для этого мы можем воспользоваться функцией file_get_contents().

Синтаксис file_get_contents():

file_get_contents(путь и имя файла);

Для того чтобы удалить какой-либо файл используют функцию unlink().

Синтаксис функции unlink():

unlink(имя файла который нужно удалить);

Функция file_exists() проверяет существует ли указанный файл и возвращает false, если его нет.

Синтаксис функции file_exists():

file_exists(имя файла);

Если Вам необходимо узнать размер файла в PHP для этого существует функция filesize(). Функция возвращает размер файла.

Синтаксис функции filesize():

filesize(путь и имя файла);

Для того чтобы скопировать при помощи PHP файл, используем функцию copy().

Синтаксис функции copy():

copy(путь и имя файла который необходимо скопировать, путь и имя нового файла);

 

Практическая часть

Вариант 13

Дан текстовый файл. Удалить строки, содержащие слова в которых количество символов равно максимальной длине слова в этом текстовом файле.

 

 

 

Копии экрана,выполняющие работу сценариев.


Рисунок 1. Вводим имя текстового файла

 

 

Рисунок 2. Вывод текста на экран, определение максимального текста и вывод преобразованного текста.

 

Листинг

Файл lab14.php

<html><body>

<?PHP

$file_name=$_POST['f_name'];

if(file_exists($file_name)) {

$str_array=file($file_name);

$len=count($str_array);

$max_str ="";

echo 'Оригинальный текст:<br>';

for ($i=0; $i<$len; $i++) {

$str_cmp="";

echo $str_array[$i].'<br>';

$str_cmp=strtok($str_array[$i], " \n\t");

while ($str_cmp) {

if (strlen($max_str)<=strlen($str_cmp)) {

$max_str=$str_cmp;

}

$str_cmp=strtok(" \n\t");

}

}

echo '<b>'.'Максимально длинное слово: '.$max_str.' </b><br> Преобразованный текст:</b>';

for ($i=0; $i<$len; $i++) {

if (!strpos($str_array[$i], $max_str)) {

echo '<br>'.$str_array[$i];

}

}

}

else {

$s=$file_name." - Такого файла не существует!!!";

echo $s;

}

?>

</body></html>

 

 

Файл index.html

<html><body>

<form name="form1" action=lab14.php method=POST>

<br>

Определить максимально длинное слово и убрать его из текта, содержащегося в файле

<br><br>

Введите имя файла read.txt: <input type="text" size =20 name="f_name"><br>

<br>

<input type="submit" value="Определить">

<br><br>

<input type="reset">

</form>

</body></html>

 

 

Текстовый файл read.txt

Библия Невады: Глава первая

Ию н ь 2011 г.

Введение

Данный документ содержит нетривиальную информацию о фанатском проекте «Fallout of Nevada » (неофициальном продолжении игры Fallout 2), а также некоторые ответы на вопросы игроков. В основном «Библия Невады» раскрывает концептуальные подтек c ты, особенности рабочего процесса и сюжетные коллизии, для иных же вопросов просьба обращаться к.

Следующий выпуск планируется посвятить в основном карте мира, базе «Сигма» и локации Шайен.

Внимание! Категорически н е рекомендуется читать тем, кто еще не с ыгра л в «Fallout of Nevada », т.к. прочтение документа может повлиять на ваше восприятие игры и ее прохождение.

Автор -составитель: Александр Пошелюжин, aka BlackDesigner. ©

Содержание этого выпуска

Вопросы хронологии:

Основной сюжет:

Наш любимый «Поджиг»

Мегапасхалка

Барахло в дорогу

Заблуждения

Трепанация

1. Вопросы хронологии

Дата событий

Вопрос не раз поднимался игроками. Могу сказать однозначно, что основные события происходят в 2140 году, о чем также явственно значится в слайде, возникающем при окончании стартовой вылазки на поверхность. День и месяц при этом совершенно не существенны. Кстати, в ряде источников можно встретить фразу про то, что события происходят за 10 лет до событий первой части. Моя вина, не доглядел, и ошибка размножилась по интернету. На самом же деле события происходят за 20 лет!

Старая дата из Fallout 2 осталась лишь по техническим причинам – не кому было лезть в движок для ее исправления, а подключить знаменитый патч sfall разработчику, увы, не удалось.

Почему выбран год 2140? Он показался наиболее оптимальным, исходя из хронологии от Криса Авеллоне в «Библии Fallout ». Повелитель уже чинит свои бесчинства, но еще не достаточно распространился, чтобы «засветиться» на территории Невады. Гарольд уже 38 лет как стал мутантом. Шейди Сэндс еще не был создан, но это событие совсем скоро. Если сдвинуть дату на пару лет, то неминуемо пришлось бы вводить в игру эту локацию, однако она слабо отличалась бы от того, что мы видели в первом Fallout ` е. А значит, было бы не интересно для игроков и для разработчика. При этом время действия достаточно старо, чтобы в Городе Убежища сформировались поколения граждан, ничего не понимающих о своем прошлом и не догадывающихся о своем предназначении.

Хронология событий Fallout of Nevada

Вступление и два героя

Некоторых ввело в смятение то обстоятельство, что главный герой в первом старте и после него – это не один и тот же персонаж. На форуме даже возникли дискуссии и предложения, как выкрутиться из этой ситуации. Вот и Whisper спрашивает:

И все же это два разных персонажа, все совпадения, как говорится, случайны.

Честно говоря, первый выход из убежища является рудиментом от первого сценария игры, когда действие разворачивалось во времена создания Города Убежища, и второй старт проходил не через 40 лет, а лишь через несколько. Тогда герой был действительно одним персонажем. Однако первый сценарий был забракован, а более интересной завязки придумать не удалось.

Сейчас же необходимость в этой вылазке возникает скорее по техническим причинам, чем по сюжетным, т.к. в начале игры задействованы некоторые движковые обработки. Пришлось, как говориться, «обмануть движок». Но и сюжетный посыл там есть. В момент выхода на поверхность средства связи дали сигнал об открытии больших дверей в «Благодатное» и прочие правительственные и военные базы, которые были задействованы в контроле над Убежищем 8. Таким образом, игроку дается еще один из множества намеков на то, что все не так-то просто и на похождении в Хоторн сюжет не окончится.

Кроме вылазки на поверхность было еще три сценария:

Разговор со Смотрителем в некоей лаборатории, где тестируют действие ГЕКК.

Герой появляется в своей комнате в убежище, проводит собеседование со Смотрителем и выходит на поверхн ость с уже известным заданием.

Тренировочный лагерь по аналогии с обучением в Fallout Tactics.

Участники форума один за другим предлагали свои варианты решения неувязки. Вот интересное предложение от Ralmir06:

Предложение от Fotorr.

В озьмем на заметку.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: