Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гамоцька / Zvit_4lab.docx
Скачиваний:
4
Добавлен:
23.02.2016
Размер:
166.55 Кб
Скачать

14. Читання з файлів

Дуже часто потрібно виводити не весь файл повністю, а тільки частину даних, щоб використовувати їх, наприклад, на сторінці РНР. У РНР є декілька функцій, що дозволяють це зробити. Вибір такої функції залежить від даних, які потрібно прочитати.

Щоб прочитати рядок з відкритого файлу, можна скористатися функцією fread ():

string fread(int fp,int length);

Ця функція читає рядок довжиною до length символів з файлу з дескриптором fp:

if (!$file=fopen("text.txt", "r")) {

echo("Неможливо відкрити файл "); // Якщо fopen Про повертає Про

// неможливо відкрити файл } else {

$text = fread($file, 10); // Прочитати перші 10 символів

fclose($file); }

Якщо кінець файлу досягнутий раніше заданої довжини length, повертається текст до цього місця.

Функція fgetc() використовується для читання з файлу одного символу:

string fgetc(int fp);

Вона має один параметр – це дескриптор відкритого файлу. Значення, що повертається, є рядком з одного символу, прочитаним з файлу, або false (порожній рядок), якщо досягнутий кінець файлу. Наступний код читає перший символ файлу:

<?php

if (!$file=fopen("text.txt", "r")) {

echo("Неможливо відкрити файл "); // Якщо fopen() повертає 0

// неможливо відкритифайл } else {

$char = (fgetc($file)); // Прочитати перший символ

//у поточній позиції

fclose($file); } ?>

Для читання вмісту файлу також можна використовувати функцію filе(), яка повертає вміст файлу у вигляді масиву. Кожен рядок файлу буде представлений одним елементом масиву (перший рядок буде нульовим елементом):

array file (string filename);

Зверніть увагу, що file() приймає як аргумент рядок з ім'ям файлу, а не цілочисельний дескриптор файлу. Наступний код бере кожен рядок текстового файлу і виводить його в броузер як абзац у форматі HTML, укладаючи текст в теги <Р> . .. </Р>:

$arrText = file("text.txt"); for ($i=0; $i<count($arrText); $i++) {

echo("<P>$arrText[$i]</P>");

Завдання

1. Створити PHP-скрипт, який повертає користувачу HTML-сторінку із

введеними в Web-форму даними.

2. Додати в створений в п.1 PHP-скрипт перевірку отриманих даних і

виведення повідомлення про помилку, якщо один з обов‘язкових параметрів не

заповнений.

3. Додати функцію запису отриманих даних в змінні сесії.

4. Додати функцію запису отриманих даних в окремий файл.

5. Розробити модель бази даних і за допомогою програми PhpMyAdmin

створити базу даних MYSQL.

6. Додати функцію запису отриманих даних в базу даних.

Виконання завдання

Завдання 1

Рис 1.1 Запис тексту до стрічки

Рис 1.2. Відправленний запит попереднього тексту

Рис. 1.3. Повернення данних

Код:

<html>

<head>

</head>

<body>

<DIV align=center>

<P align=left><INPUT onclick=history.back(-1) type=button value=" BACK (возвращает на предыдущую страницу с веденными в Web-форму даными)"></P></DIV>

</body>

</html>

Завдання 2

Рис. 2.1. Запит на перевірочне слово. Запит невдалий.

Рис. 2.2. Запит на перевірочне слово. Запит вдалий.

Код:

Index.Php:

Складіть слово:

<br/> kersysCha

<form action="proverka.php" method="POST">

<input type="text" name="NAME">

<input type="submit">

</form>

proverka.php:

<?php

if($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["NAME"]))

{

$name = $_POST["NAME"];

if($name != "Cherkassy") echo "Error";

else echo "Ok";

}

Завдання 3

Рис 3.1. Запис данних

Рис 3.2. Збережені данні

Код:

<?php

if ($_POST['content'])

{

$file=fopen('content.txt','w');

fputs($file,$_POST['content']);

fclose($file);

echo 'Данные записаны в файл!';

}

else

{

echo '

<form method="post" action="index.php">

<textarea rows="0" cols="18" name="content">

'.file_get_contents('content.txt').'

</textarea>

<input type="submit" value="Сохранить">

</form>';

}?>

Завдання 4

Рис. 4.1. Запит до збереження зображення до БД.

Рис 4.2. БД

Код:

Введення картинки до БД: index.php: <form enctype="multipart/form-data" method="post" action="putimage.php">

Изображение: <input type="file" name="image" />

<input type="submit" value="Загрузить" />

</form>

putimage.php:

<?php

if( !empty( $_FILES['image']['name'] ) ) {

if ( $_FILES['image']['error'] == 0 ) {

if( substr($_FILES['image']['type'], 0, 5)=='image' ) {

$image = file_get_contents( $_FILES['image']['tmp_name'] );

$image = mysql_escape_string( $image );

$query="INSERT INTO `images` VALUES(NULL, '".$image."')";

mysql_query( $query );

}

}

}

?>

image.php: <?php

if ( isset( $_GET['id'] ) ) {

$id = (int)$_GET['id'];

if ( $id > 0 ) {

$query = "SELECT `content` FROM `images` WHERE `id`=".$id;

$res = mysql_query($query);

if ( mysql_num_rows( $res ) == 1 ) {

$image = mysql_fetch_array($res);

header("Content-type: image/*");

echo $image['content'];

}

}

}

?>

Виведення картинки на сторінку: <html>

<head>

</head>

<body>

<img src="image.php?id=1" alt="" />

</body>

</html>

Висновок: Ми навчились обробляти параметри запиту за допомогою PHP-

скрипта та записувати дані в базу даних MYSQL, в змінні сесії, в окремий файл.

Соседние файлы в папке Гамоцька