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

видян:
8303
Преместване на файлове
За да можете да преместите
файл от една директория в друга чрез 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)
Ако е добавило въобще кода.