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

PHP - част 15 (Работа с директории)

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



Преместване на файлове

За да можете да преместите файл от една директория в друга чрез PHP, използвайте функцията rename() .

Както можете да предположите от функцията тя служи за преименуване на файла. Но ако зададете различни директории за новото и старото име, тази функция ще премести файла.

Функцията има следния синтаксис:

int rename(string източник, string цел);

Както функцията copy(), функцията rename() приема два аргумента. Първият аргумент е името на файла, който ще се премества, а вторият параметър представлява целевия файл, който ще се премества, а вторият параметър, представлява целевия файл, който трябва да се създаде. Функцията връща стойност True, ако операцията е била извършена успешно. В противен случай връща стойност False.

Можете да получите съобщение за грешка по време на преместването на файл от една директория в друга, ако нямате достатъчно права, за да направите това. Поради тази причина, преди да местите файлове, проверете дали имате права.

Разгледайте следния пример, за да разберете употребата на функцията rename() за преместване на файлове.

<?php
$source ='/home/meeta/hello.php';
$distantion ='/home/meeta/figures';
if (rename ( $source, $distantion))
{
echo = „Файлът е преместен успешно“;
}
else
{
echo „Зададения файл не може да бъде преместен.“;
}
?>


В горния пример се прави опит да се измести файла hello.php от директорията /home/meeta/ в директорията /home/meeta/figures. Ако файлът е преместен успешно, се извежда съобщението Файлът е преместен успешно. Но ако операцията по преместване не е успяла, ще се изведе съобщението Зададения файл не може да бъде преместен.

Използването на функцията rename() забавя значително изпълнението на програмата, тъй като функцията rename() трябва да се обърне към операционната система, която да стартира програмата rename. Поради тази причина е по-добре да създадете свой скрипт, за да премествате файлове от едно място на друго.

Знаем, че операцията по присвояване на файл се състои от две независими операции: копиране на файла на ново място и изтриването му от старото място. Така, че можем да напишем следната функцията за преместване на файл.
Function move ( $source, $destination )
{
copy ($source, $destination);
or die („Не мога да копирам файла!“);
unlink ( $source )
or die („Не мога да изтрия файла“);
}

В следващата секция, ще видите, как можете да изтриете един или повече файлове от директория, като използвате функцията unlink().


Изтриване на файлове

Допълнителните и ненужните файлове внасят хаос в системата ви. За да се оправи този хаос, трябва периодично да изтривате ненужните файлове. PHP предоставя функцията unlink() за изтриване на файл.

Функцията има следния синтаксис

int unlink( strin име_на_файл);

Функцията unlink() приема един аргумент, задаващ името на файла, който трябва да се изтрие. Функцията връща стойност 1, ако файлът е изтрит успешно, и стойност 0, ако не е изтрит.

Разгледайте следния пример:
<?php
$file_delete = '/home/meeta/my.php';
if ( unlink( $file_delete))
{
echo „Файлът е изтрит успешно“;
}
else
{
echo „Файлът не може да се изтрие“;
}
?>

В горния код се изтрива файлът my.php от директорията / home/meeta/. Ако изтриването на файла е успешно, се показва съобщението Файлът е изтрит успешно. Ако файлът не може да бъде изтрит, се извежда съобщението Зададения файл не може да се изтрие.

Както и при предишните операции трябва да имате необходимите права, за да изтриете файла.

Функцията unlink() е предназначена за Unix и Linux и може да не работи под Windows.


Работа с множество файлове в директория

В предишния урок, видяхте как можете да изтривате отделни файлове, Сега да предположим, че трябва да изтриете всички файлове в дадена директория, които са 245 файла и поддиректории. Вместо да изтривате отделните файлове в директорията, можете да изтриете всички файлове и директории на веднъж. PHP не предоставя вградена функция за тази цел. Но можете да използвате методите mapdir() и maptree() на класа File_Find от PEAR

В следващите две секции, ще ви запозная с функциите mapdir() и maptree() и как можете да ги използвате в скриптовете си на PHP.

Функцията mapdir()

Тъй като функцията mapdir() е метод на класа File_Find от PEAR, ще трябва да включите класа в скрипта си. За да направите това, трябва да добавите следния ред, преди да използвате функцията mapdir()

include_once 'File_Find.php';

Функцията mapdir() има следния синтаксис:

resource mapdir( resource манипулатор_на_директория );

Методът mapdir() връща масив, съдържащ всички поддиректории на дадена директория заедно с файловете в зададената директория и поддиректориите й.

Разгледайте следния пример, който показва имената на всички файлове в дадена директория.

<?php
include 'File_Find.php';
$file_read = File_Find :: mapdir ( '/home.meeta/new' );
foreach ( $file_read as $fr )
{
echo „$fr“, „n“;
}
?>

Чрез горния код се отпечатват имената на всички файлове в директорията /home/meeta/new с помоща на метода mapdir().


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

Коментари (1)

charmed на 17.10 2006 в 01:56ч.
Урока е стахотен, но в echo се ползва " не „ и “, а и си пропеснал часта за създаване на директория :) Това е много важно. Ето как става най просто:



Ако е добавило въобще кода.

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


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