Помогни ни да направим Uroci.net по - богат! Добави урок

PHP - част 9 (Работа с файлове)

PHP » PHP
fix3d   трудност:    видян: 13706



Функцията fseek()
Можете да използвате функцията fseek(), за да зададете текущата позиция във файл. Синтаксисът на функцията е следният:

int fseek(int файлов_манипулатор, int отместване, int база);

В горният синтаксис първият аргумент е файлов манипулатор, който задава файла върху който ще се изпълни функцията. Следващият аргумент отместване, е цяло число, което задава новата текуща позиция във файла. Третия аргумент база, задава как да се извърши изчислението на новата позиция. Стойностите на двата аргумента отместване и база представляват брой байтове.
Аргументът база има следните три стандартни стойности:

SEEK_SET Текущата позиция се премества от началото на файла на зададения брой байтове от параметъра отместване.
SEEK_CUR Текущата позиция се изчислява, като към текущата позиция във файла се добавят броят байтове, зададени в параметъра отместване.
SEEK_END Текущата позиция се изчислява като сума от дължината на файла и броя байтове, зададени в параметъра отместване.

За да разберете по-добре как действа функцията fseek(), разгледайте следния пример:

<?php

$file = "data1.dat";

// Отваряне на файла data1.dat
$fo = $fopen($file, "r")
or die ("Не може да се намери файла");

// Определяне на дължината на data1.dat
$file_length = filesize($file);

echo "n";
echo "Рамерът на файла: $file_length.", "n";

/
/ Позициониране на 22 байт във файла
$fs = fseek($fo, 22, SEEK_CUR);

// Прочитане на 6 символа от текущата позиция във файла
$current_char = fread($fo, 6);

echo "В момента текущата позиция е върху символа $current_char";

?>

Запис във файл
PHP предоставя функцията fwrite() за запис на данни във външен файл. Тази функция приема три аргумента. Синтаксисът на функцията ж е следния:

int fwrite(int файлов_маниполатор string низ, int дължина);

Първият аргумент е файлов манипулатор, в който искате да запишете данните. Вторият аргумент string (низ), е информацията, която искате да запишете. Последният аргумент, дължина, не е задължителен. Той задава броят байтове, които да се запишат във файла.

За да разберете по-добре действието на функцията fwrite(), разгледайте следния програмен фрагмент:
dataformat = "A20A50A200A4A2A10A6";
$line =
pack ($dataformat, $name, $addres, $email, $gander, $birth_mounth,
$comedy, $hobies[0]);
echo $line,"<br>",strlen($line);
$fp = @fopen("data.dat","w+")
or die ("Не може да се отвори файла");

// Запис във файла
$result = @fwrite($fp, $line)
or die ("Не може да се запишат данните във файла");

fclose($fp);

В горния код файлът data.dat се отваря в режим w+, което позволява операции за четене и запис във файла. След като файлът е отворен успешно, низът, съхранен в променливата $line, се записва във файла. Накрая, отворения файл се се затваря със помощта на функцията fclose().

Форматиране на данните
Да разгледаме следния ред:

dataformat = "A20A50A200A4A1A10A6";

Горния ред позволява съхраняването на информацията въведена в HTML формата, в променливата $dataformat в определен формат. Променливата $dataformat съхранява данните в едно редова структура, в която всяко поле има фиксирана дължина, запазена за него. Символът А предшества числата (20, 200, 50, 6, 10, 2, 4, 1), представлява променливите, като например $name, #address, $email в реда, който са получили от формата. Така:

[list]A20 Дефинира по едно поле от 20 символа, за стойността $name
А200 Дефинира поле от 200 символа, за стойността $email
А4 Дефинира поле от 4 символа, за стойността $ganger
А50 Дефинира поле от 50 символа, за стойността $addres
А6 Дефинира поле от 6 символа, за стойността $hobies[0]
А10 Дефинира поле от 10 символа, за стойността $comedy
А2 Дефинира поле от 2 символа, за стойността $birth_mounth [/list]


източник на урока: http://www4u.search.bg


Страници: «1 2 3

Сподели урока:



Регистрирайте се, за да добавите коментар


Калдейта Ком ЕООД - © 2003-. Всички права запазени.
Препоръчваме: IT Новини