Salam , Məndə hər istifadecinin id nömrəsi ile sciriptde papkalar yaranır.Həmin papkalari ftp-den yox php köməkliyi ile silmək isteyirəm. Bunun üçün munasib kodlar yaza bilərsiz?
Salam , Məndə hər istifadecinin id nömrəsi ile sciriptde papkalar yaranır.Həmin papkalari ftp-den yox php köməkliyi ile silmək isteyirəm. Bunun üçün munasib kodlar yaza bilərsiz?
Verilmiş cavablar və yazılan şərhlər (15 cavab var)
2
Salam. Papka boşdursa rmdir(‘papkaya_geden_yol/’.$user_id); yazırsınız silir. Yox əgər fayl varsa içində o halda silməkçün
1
public static function deleteDir($dirPath) {
2
if (! is_dir($dirPath)) {
3
throw new InvalidArgumentException("$dirPath must be a directory");
4
}
5
if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
6
$dirPath .= '/';
7
}
8
$files = glob($dirPath . '*', GLOB_MARK);
9
foreach ($files as $file) {
10
if (is_dir($file)) {
11
self::deleteDir($file);
12
} else {
13
unlink($file);
14
}
15
}
16
rmdir($dirPath);
17
}
Mənbə
0
E. Hacı , papkalarin icinde dat fayllar var. bele bir kod yoxladim alinmadi amma, bunuda yoxlayim, indiden twk edirem .
0
Bunu googleden axtarisda tapmisdim. public static function bu setrde sehv gosterir suntax sehv
0
Syntax səhvlərin nə olduğuna baxıb sətrin nömrəsinə baxın onları dərhal google-da axtarıb səhvi düzəltmək lazımdır. Aşağıda da Master yazdığı kimi, sizdə class yoxdur deyə kiçik dəyişikik etmək lazımdır.
1
PHP255 , Elvin bey onu o funksiyani CLASS ucun yazib ,yeni sen onu CLASS yaradib onun icine yerlewdirib cagirmalisan . Yox eger CLASS yaratmaq isdemirsense onu istifade etmek ucun PUBLIC STATIC sozlerini sil
yeni bele istifade et
1
function deleteDir($dirPath) {
2
if (! is_dir($dirPath)) {
3
throw new InvalidArgumentException("$dirPath must be a directory");
4
}
5
if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
6
$dirPath .= '/';
7
}
8
$files = glob($dirPath . '*', GLOB_MARK);
9
foreach ($files as $file) {
10
if (is_dir($file)) {
11
self::deleteDir($file);
12
} else {
13
unlink($file);
14
}
15
}
16
rmdir($dirPath);
17
}
0
self:: <– bu sətri də sil
0
Yenede silinmir , adice bos papka yaradiram rmdir(“test”); bu vasiteyle silmir. Bele bir sehv gelir ekrana
Warning: rmdir(test) [function.rmdir]:
0
Elə bu gəlir? Davamı da olmalıdır axır.
0
E. Hacı , Davaminda `silinme icazesi yoxdur` yazilir, Amma php faylini bir papka geriye atanda isleyir. yeni
rmdir(“log/test”); bele isleyir
rmdir(“test”); bele yox.
mene esas icinde dat fayllar olan papkalarin silinmesi lazimdi. texmini 600den cox papka yaranib icinde o gederde dat fayl var,en azi gunde 1 defe silmeliyem ki yaddas dolmasin. amma alinmir.
1
Bunu da yoxlayın. Papkaların da adının düz yazdığınıza əmin olun.
1
<?php
2
3
// When the directory is not empty:
4
function rrmdir($dir) {
5
if (is_dir($dir)) {
6
$objects = scandir($dir);
7
foreach ($objects as $object) {
8
if ($object != "." && $object != "..") {
9
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
10
}
11
}
12
reset($objects);
13
rmdir($dir);
14
}
15
}
16
?>
0
E. Hacı , Burada papkanin adi hara yazilir? men yuxarda $dir=’log’; bele yazdim duzgundur bele? Birde berke bular yalniz 1 papkani silmek ucundur. mende log papkasinin daxilinde istifadecilerin id nomresi ile yaranmish 1000-e yaxin papka var onlarin icindede o geder dat fayl var.
1
Bu bütün log papkanı silmək üçündür. Bir də sizin file manager, ftp kimi accessiniz yoxdur ki serverdən asanlıqla siləsiniz? Log yazanda silmirsə deməli path düzgün deyil tam path ilə yoxlayın məsələn /home/public_html/log
0
Qurulan funksiya mysql ile elaqedardir , ona gore hem dat fayllar hemde mysgl eyni vaxtda silinmelidir . FTP-den silsem ikisini eyni vaxtda sile bilmerem. Gerek istifadeci girisini baglayim sonra silim . Hemin vaxt istifadeci olsa niklerinde problem yaranacaq.Buna gorede 1klik ile hem mysql melumatlarini hemde dat fayllari silmek isteyirem .
Dediyiniz kimide yoxladim teessuf netice eynidi.
asaqida bele formada yazdim
rrmdir(‘log’);
yene alinmadi
0
Sualı əvvəldə düzgün formalaşdırmaq lazımdır ki, cavab yazmaq istəyənlər telepatik bacarıqlarına müraciət etmək məcburiyyətində qalmasınlar.
Nümunə:
1
$dir = 'qovluqlar/' . $id;
2
mysql_query("DELETE FROM `downloads` WHERE `id` = '" . $id . "';");
3
rrmdir($dir);
Burada rrmdir Yuxarıda qeyd edilmiş funksiyadır
0
VendeTTA , Siz yazdiqiniz vasite ile her istifadeci oz qovluqunu silir. Men ise admin panelden butun qovluqlari silmek istediyimi bildirmisem.
1
function KlasorSil($dir) {
2
if (substr($dir, strlen($dir)-1, 1)!= '/')
3
$dir .= '/';
4
//echo $dir; //silinen klasörün adı
5
if ($handle = opendir($dir)) {
6
while ($obj = readdir($handle)) {
7
if ($obj!= '.' && $obj!= '..') {
8
if (is_dir($dir.$obj)) {
9
if (!KlasorSil($dir.$obj))
10
return false;
11
} elseif (is_file($dir.$obj)) {
12
if (!unlink($dir.$obj))
13
return false;
14
}
15
}
16
}
17
closedir($handle);
18
if (!@rmdir($dir))
19
return false;
20
return true;
21
}
22
return false;
23
}
Bu versiya ishledi.
Hemcinin papkalari cmod 777 , olmaq sherti ile
Movzuda butun fikir yazanlara tesekkur.
Sual verin
Cavab verin