Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Copiar diretórios inteiros com PHP

Nesse artigo criaremos uma função em PHP que copia diretórios inteiros, e se o diretório não existir, é criado.

Nesse artigo criaremos uma função em PHP que copia diretórios inteiros, e se o diretório não existir, é criado.

Função "copiar_diretorio" com 3 parametros:
$diretorio:Nome do diretório.
$destino:Nome do diretório destino.
$ver_acao:Exibe cada ação da execução.
<?php
   function copiar_diretorio($diretorio, $destino, $ver_acao = false){
      if ($destino{strlen($destino) - 1} == '/'){
         $destino = substr($destino, 0, -1);
        }
      if (!is_dir($destino)){
         if ($ver_acao){
            echo "Criando diretorio {$destino}\n";
            }
         mkdir($destino, 0755);
      }
        
      $folder = opendir($diretorio);
       
      while ($item = readdir($folder)){
         if ($item == '.' || $item == '..'){
            continue;
            }
         if (is_dir("{$diretorio}/{$item}")){
            copy_dir("{$diretorio}/{$item}", "{$destino}/{$item}", $ver_acao);
         }else{
            if ($ver_acao){
               echo "Copiando {$item} para {$destino}"."\n";
            }
            copy("{$diretorio}/{$item}", "{$destino}/{$item}");
            }
      }
   }
?>

Exemplos de Uso:

1 - Crie um diretório chamado "diretorio1" e dentro dele coloque alguns arquivos (foto, textos, etc).
Como exemplo eu coloquei os seguintes arquivos: "imagem.jpg", "documento word.docx" e "documento excel.xlsx".
Com o código a seguir vamos duplicar esta pasta e a nova pasta ficara com o nome "diretorio2":
<?php
   copiar_diretorio('./diretorio1', './diretorio2/'); // copia o diretório inteiro
?>

2 - Agora copiaremos o conteudo da pasta "diretorio1" para o diretório de execução:
<?php   
   copiar_diretorio('./diretorio1', './'); // copia os arquivos do diretório para o diretório de execução
?>

3 - O terceiro parâmetro ($ver_acao) exibe cada ação da execução e podemos ver em funcionamente passando como "true":
<?php   
   copiar_diretorio('./diretorio1', './diretorio2/', true);
    // Exibe as seguintes mensagens:
    // Criando diretorio ./diretorio2

    // Copiando documento excel.xlsx para ./diretorio2
    // Copiando documento word.docx para ./diretorio2
    // Copiando imagem.jpg para ./diretorio2
?>




    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Estatísticas #
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03