Лекции.Орг


Поиск:




Пример 7.2 Содержимое включаемого файла primer7_2.php

 

<?php

print "<h1> HELLO, WORLD!</h1>";

?>

 

Функция include() в примере 7.1 вставляет в документ содержание другого документа, который приведен в примере 7.2. В результате мы получаем вывод на экран строки Hello,World!. Следует учитывать следующий момент, если вы хотите, чтобы содержимое включаемого файла обрабатывалось как PHP-программа, необходимо заключить это содержимое в PHP-блок, иначе оно будет рассматриваться как простой HTML-документ. Не забывайте, если файл находится не в том же каталоге на сервере, что и HTML-документы, необходимо указать к нему полный путь.

 

Исследование файлов

Проверка существования файла

Для того чтобы проверить существует ли нужный вам файл, применяется функция file_exists(). Эта функция принимает строку, содержащую полный или относительный путь к файлу. Если файл найден, то функция возвращает true, иначе – false.

 

Пример 7.3 Проверка существования файла (primer7_3.php)

 

<?php

if (file_exists("primer7_2.php"))

{

print "primer7_2.php – это файл";

}

?>

 

Программа работает очень просто, если файл существует, мы сообщаем об это через функцию print пользователю.

 

Определение размера файла

Функция filesize("имя файла") определяет размер файла в байтах.

 

Пример 7.4 Определение размера файла (файл primer7_4.php)

 

<?php

print filesize("primer7_2.php");

?>

Результатом работы программы будет вывод на экран браузера размера запрашиваемого файла.

Создание и удаление файлов

 

В PHP можно легко создать файл с помощью функции touch(имя_файла). Получив строку с именем файла, эта функция создает пустой файл с заданным именем. Если же такой файл уже существует, то функция не меняет его содержания, но изменяет дату модификации.

Существующий файл можно удалить с помощью функции unlink(имя_файла), которая в качестве аргумента получает имя файла.

 

Пример 7.5 Создание и удаление файла (файл primer7_5.php)

 

<?php

touch("primer.txt");

print "Файл primer.txt создан";

unlink("primer.txt");

print "Файл primer.txt удален";

?>

 

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

Открытие файла для чтения, записи или добавления

Для того, чтобы с файлом можно было работать, его нужно открыть. Для этого существует функция fopen(). Данной функции передаются два аргумента – строка с именем файла и путем к нему, а также строка, описывающая режим открытия файла. Самые простые режимы – это чтение, запись и добавление в конец файла. Строки, описывающие режим открытия файла, выглядят соответственно как “r”, “w” и “a”. Функция fopen() возвращает целое число, если файл удалось открыть, и значение false, если по каким-то причинам этого сделать не удалось. Целое число (указатель на файл), возвращаемое функцией, необходимо присвоить некоторой переменной. Позднее, если вы захотите выполнить над файлом некоторые действия, вам будет достаточно указать только имя этой переменной, а не полный или относительный путь к файлу.

Таким образом, открытие файла для чтения будет выглядеть так:

$f=fopen("file.txt", "r");

Следует учитывать, что для записи в файл возможны два режима(“a” и “w”). Если вы откроете файл в режиме записи ("w"), то все информация в файле будет уничтожена, и новые данные запишутся в начало файла. При этом, если файл отсутствовал, то он создается. Если вы откроете файл в режиме добавления ("a"), то все новые данные будут добавлены в конец файла.

 

Пример 7.6 Работа с указателем, возвращаемым функцией fopen() (файл primer7_6.php)

 

<?php

touch("primer.txt");

$p = fopen("primer.txt", "r");

$fs=filesize("primer.txt");

$text=fread($p, $fs);

print " размер файла=".$fs." байт <br>";

print "его содержимое - ".$text;

fclose($p);

?>

 В данной программе мы сначала создаем некий файл (если он отсутствовал) или соединяемся с существующим. Затем открываем его для чтения с помощью функции fopen(). Получаем от этой функции указатель на файл и сохраняем его в переменной $p. Для вывода на экран браузера размеров файла мы пользуемся уже не его именем, а полученным от функции fopen() указателем $p. Здесь мы записали его в переменную $fs. А затем прочитываем его содержимое во вспомогательную переменную $text. В функции чтения нужно указать, сколько символов будет прочитано. У нас это определило функция filesize(), но его можно указать и с запасом.

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

Построчное чтение из файла с помощью fgets()

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

 

Пример 7.7 Построчное чтение из файла (файл primer7_7.php)

 

<?php

$p = fopen("guess.txt", "r") or die ("Could'n open file!");

while(!feof($p))

{

$line = fgets($p,10);

print $line."<br>";

}

fclose($p);?>

Рассмотрим это пример детально. В первой строчке файл открывается для чтения guess.php (просто он был создан ранее и там содержится достаточное количество строк для чтения), полученный указатель сохраняется в переменной $p. Однако в этой же строчке используется ранее незнакомый момент - or die(" Could' n open file!"). Функция die() просто выводит свой аргумент на экран браузера и прекращает выполнение программы.

Таким образом, всю сточку целиком можно понять так, если открыть файл не удастся (если функция fopen() вернет не указатель на файл, а значение false), на экран будет выведена строка Could' n open file! и работа программы закончится. Если все пройдет гладко и файл будет открыт без проблем, функция die() будет просто проигнорирована.

Во второй строчке вы можете наблюдать цикл while. Цикл будет работать до тех пор, пока не будет достигнут конец файла.

Для определения конца файла используется функция feof(). Данная функция возвращает true при достижении конца файла и false – в противном случае. Напомним, что символ! означает инверсию. В качестве аргумента мы передаем этой функции переменную $p, содержащую указатель на наш файл.

Таким образом, всю строчку можно понять следующим образом: до тех пор пока функция feof() возвращает значение ложь (иначе говоря, до тех пор пока мы не дошли до конца файла), цикл while будет выполняться.

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

Еще раз напомним, перечисленные в теле цикла действия выполняются до тех пор, пока не будет достигнут конец файла.

Запись в файл с помощью функции fwrite ()

У функции fwrite() всего два аргумента – указатель на файл и строка. Функция просто записывает эту строку в файл.

Для иллюстрации работы функции fwrite() немного модифицируем пример 6.1 из предыдущей темы. В этом примере мы анализировали правильность введенного пароля. Теперь мы будем записывать время всех неудачных попыток в текстовый файл (new.doc).

 

Пример 7.8 HTML-форма для ввода пароля доступа (form2.html)

 

<html>

<head>

<title> Form </title>

 </head>

 <body>

<form action="primer7_9.php" method="GET">

Введите пароль: <input Type="password" Name = "pas" Size=“10” Maxlength=“10”>

<input type="submit" value="Проверка пароля">

</form>

 </body>

</html>

 

Никаких изменений в самой форме ввода сделано не будет, они не нужны.

Пример 7.9 Обработчик HTML-формы для ввода пароля доступа (файл primer7_9.php)

 

<?php

if($_GET['pas']=="17er0482")

{

$string=" Password OK ---->>>\n";

$fp = fopen("new.doc", "a");

fwrite($fp, $string);

fclose($fp);

}

else

{

$d= date("j of F Y H.i");

$string=$d." Password error ---->>>".$_GET['pas']."\n";

$fp = fopen("new.doc", "a");

fwrite($fp, $string);

fclose($fp);

header("Location: form2.html");

}

?>

 

Программа проверяет правильность введенного пароля. Если пароль правильный, файл new.doc открывается в режиме добавления и в него с помощью функции fwrite() записывается строка Password OK. Служебные символы "\n" создают перевод строки в текстовом документе.

Если пароль неправильный, в тот же файл записывается текущая дата и время (подробнее о них в следующей теме), строка Password error ---->>> и само значение введенного пароля (\n – это символ новой строки). С помощью функции header() с параметром Location пользователю отправляется исходная форма для ввода, чтобы он попробовал ввести пароль еще раз.

 

Задание для самопроверки

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



<== предыдущая лекция | следующая лекция ==>
Пример 5.6 Получение размера массива | П.11.Связь с базами данных на примере сервера MySQL
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 249 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Вы никогда не пересечете океан, если не наберетесь мужества потерять берег из виду. © Христофор Колумб
==> читать все изречения...

779 - | 750 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.