Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FTP - kasowanie katalogów (z podkatalogami i plikami)
Forum PHP.pl > Forum > PHP
grohu
W jaki sposób można rekursywnie kasować katalogi przez połączenie
z serwerem FTP questionmark.gif?

W manualu http://pl2.php.net/manual/pl/function.ftp-rmdir.php są przykłady, ale żaden z nich nie działa poprawnie !

pomocy.
hamlecik
mam dzisiaj dobry dzien

[php:1:fce184a36a]
<?php

function removedir($dir)
{
$dh=opendir($dir);
while ($file=readdir($dh))
{
if($file!="." && $file!="..")
{
$fullpath=$dir."/".$file;
if(!is_dir($fullpath))
{
unlink($fullpath);
}else{
removedir($fullpath);
}
}
}
closedir($dh);
if(rmdir($dir))
{
return true;
}else{
return false;
}
}

?>[/php:1:fce184a36a]
Bakus
Autor poszukuje rozwiązania dla kasowania przez FTP a nie w lokalnym sysemie plików...
Cytat
[php:1:0bdfc3d577]<?php
function ftp_rmAll(&$ftp_site,$dir){
$root=$dir;    // tmp variable

if(@!ftp_chdir($ftp_site,$root)){ // enter the DIRCTORY $root
  echo 'Directory not found.';
  return 0;
}

if(!empty($dir) && ($file_list=ftp_nlist($ftp_site,'.'))!=0 && $file_list!=NULL)
{
  // list content inside the DIRECTORY $root
  foreach($file_list as $dir) {
      if(ftp_size($ftp_site,$dir)===-1){    // dirname
          ftp_rmAll($ftp_site,$dir);    // recursion
      }else    {
          ftp_delete($ftp_site,$dir);    // del file
      }
  }
}

ftp_chdir($ftp_site,'../');    // dir is empty now, move one level up
if(ftp_rmdir($ftp_site,$root))    // remove the empty dir
  return 1;
return 0;
}
?>[/php:1:0bdfc3d577]

This one works well on php4.2.1 + IIS 5.0 + Win 2000 Server
NOTE: $file_list!=NULL is needed in IIS platform


UpDated:
grohu - Posty: 69
Bakus - Posty: 1069
A się fajnie złożyło winksmiley.jpg
grohu
nie moglem predzej odpowiedziec bo...nie mialem netu.

ale dupa. juz wiem czemu mi nie chcialy dzialac te funkcje z manuala.
i twoja z reszta tez. dlatego ze...windows:)

pod windowsowym serwerem ftp (Serv-U) funkcja ftp_nlist zwracala tylko liste plikow w podanym katalogu, bez listy podkatalogow. przed chwila zrobilem eksperymencik ktory mi to udowodnil.

wiec jak juz sie doczekam na neostrade (tepsa ruleZ - czekam 3 tygodnie i caly czas mnie oszukuja w telepunkcie:) to sobie popracuje nad programem przez internet.

dzieki za pomoc.

pozdrofka
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.