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

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

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



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

Можете да използвате метода maptree(), за да обработите всички файлове и поддиректории в дадена директория. Това също е метод на класа File_Find в PEAR. Методът maptree() е по-мощен от метода mapdir(), тъй като метода, зарежда цялото съдържание на директорията в масив. Методът има следния синтаксис:

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

Методът maptree() връща масив. Резултатния масив, на практика се състои от два различни масива. Първият масив съдържа всички поддиректории на зададената директория. Вторият масив връща всички файлове в зададената директория и нейните поддиректории. Следващия ред илюстрира тази концепция.

dir_tree ( $dirs, $files ) = File_Find :: maptree( '/var/www/html/meeta' );

Функцията maptree(), както можете да видите от горния код, връща масив dir_tree, който от своя страна съдържа два отделни масива: $dirs и $files. Масивът $dirs съдържа всички поддиректории, а масивът $files съдържа всички файлове в зададената директория и нейните поддиректории.

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

<?php
include 'File_Find.php';
dir_tree ( $dir_delete, $file_delete ) = File_Find :: maptree( '/home/meeta/figures2' );
foreach ( $files_delete as $fd ) {
if ( ! ( unlink ($fd))) {
echo „Не мога да изтрия файла!“;
}
else {
echo „Файлът е изтрит успешно!“;
}}
?>

В горния код, цялото съдържание на директорията /home/meeta/figures2 се получава в масива dir_tree. Този масив от своя страна, съдържа всички поддиректории в масив с име dir_delete и файловете в масива file_delete. Всички файлове намиращи се в масива file_delete, се изтриват чрез цикъла foreach.


Изтриване на директории

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

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

int rmdir( string име_на_директория );

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

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

<?php
$dir_delete = '/home/meeta/dir1';
if ( rmdir( $dir_delete)) {
echo „Директорията е изтрита успешно“;
}
else {
echo „Директорията не може да се изтрие.“:
}
?>

Горния код е прост и нереалистичен. Разгледайте следващия пример, който изтрива директория със цялото и съдържание.
<?php
include 'File_Find.php';
dir_tree ( $dir_delete, $file_delete ) = File_Find :: maptree('/home/meeta/figures2' );
foreach ( $files_delete as $fd ) {
if ( ! ( unlink ($fd))) {
echo „Не мога да изтрия файла!“;
}
else {
echo „Файлът е изтрит успешно!“;
}}
foreach ( dir_delete as $dd )
if ( ! ( unlink ($fd))) {
echo „Не мога да изтрия Директорията!“;
}
else {
echo „Директорията е изтрита успешно!“;
}}
?>

В горния код всички файлове в директорията се съхраняват в масив file_delte, а всички поддиректории – в масива dir_delete. Първият цикъл foreach се използва за изтриване на всичко файлове в директорията. Вторият цикъл foreach изтрива всички поддиректории.


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


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

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

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



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

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


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