Delete folder with CHMOD777 permission

0

I create a folder with PHP like this

mkdir('/public_html/buscauiva/public_html/'.$_POST['Nome'].'', 0777);

To exclude I'm using PHP

asked by anonymous 05.04.2018 / 14:36

2 answers

3

To delete a folder, you must first delete the files inside it. You can try this:

$dir='/var/www/casamentowagnerecamila.com.br/public_html/buscauiva/public_html/'.$row['nome'].'';

// Se a pasta não existir
if (!file_exists($dir)) {
    echo "Pasta não existe";
}

// Se não for uma pasta, exclui o arquivo
if (!is_dir($dir)) {
    unlink($dir);
}

// Verifica os arquivos dentro da pasta
foreach (scandir($dir) as $item) {
    unlink($item);
}

// Por fim, apaga a pasta
rmdir($dir);

More simplified, you can use OS commands to delete the folder, but this solution only works in LINUX (I think)

// chama o comando do SO
system('rm -rf ' . escapeshellarg($dir), $retorno);
// esse comando linux retorna 0 quando sucesso
if( $retorno == 0) echo "Excluido com sucesso";
    
05.04.2018 / 15:02
1

I went to take a look at the PHP manual and saw that to delete the folder, "the directory must be empty and the relevant permissions should allow this operation" .

The manual itself has an example of how to proceed; you need to clean the directory and then deleting it, you would use it like this:

public static function MeuMetodo()
{
  // ...      
  dir='/var/www/casamentowagnerecamila.com.br/public_html/buscauiva/public_html/'.$row['nome'].'';

  if(DelTree($dir)) 
  {
    echo 'Pasta deletada com sucesso.';
  }
  else 
  {
    echo 'A pasta não pode ser deletada.';
  }
}

public static function DelTree($dir) { 
  files = array_diff(scandir($dir), array('.','..')); 
  foreach ($files as $file) { 
    (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file"); 
  } 
  return rmdir($dir); 
} 
    
05.04.2018 / 15:00