Em alguns casos precisamos criar um diretório na nossa aplicação ou na estrutura do sistema operacional, seja para manter um arquivo de logs divididos em seções diárias, manter um diretório de caches ou para upload de imagens.
Com PHP esse processo de criação é muito simples e rápido, basta um único comando para criar o diretório. O mkdir (abreviação de Makes Directory) com seus parâmetros, vamos ver um exemplo logo abaixo.
Mas antes de sair criando diretórios assim, precisamos saber se o diretório já existe, pra isso usaremos o comando is_dir. Tudo muito simples e fácil de entender.
//indica um diretorio qualquer.
$diretorio = 'c:/public/img/';
if (! is_dir($diretorio) )
mkdir($diretorio, 0777, true);
O exemplo acima é quase que auto explicativo, você tem uma variável $diretorio onde você indica o caminho do diretório que deseja verificar e criar. Esta variável pode receber valores dinâmicos de configuração do sistema ou banco de dados, como poderia ser também informado pelo usuário.
Em seguida verificamos se o diretório existe. Se não existir, aquele ponto de exclamação serve pra isso! Somente então se não existir é que iremos executar o comando para criar o diretório.
No comando para criar diretório de forma dinâmica, passamos três parâmetros, o caminho do diretório, a permissão da pasta, no exemplo 0777 significa permissão total de leitura, escrita e gravação. Que é o valor default. E por último indicamos se é recursivo ou não, este valor por default é False.
Esta função, assim como a anterior retorna um valor booleano (true/false).
Veremos futuramente como apagar os diretórios dinâmicamente usando a função rmdir().
Sucesso!
Loading...
Mario,
Parabéns pelo post. Tentei criar diretórios através deste comando mas ele não criou. A permissão está 0777 e nada. O engraçado é que ele não dá erro também, só não cria…
Utilizei o seguinte comando:
if(mkdir(“uploads/acoes/pasta_1/” . $row["pasta"], 0777, true))
echo “Diretório criado com sucesso…”;
else
echo “Não foi possÃvel criar o diretório ” . $row["pasta"] . “”;
Obrigado pela ajuda
dae Roberto, valew pelo comentario.
aparentemente nao tem erro.
ja tentou usar outros diretorios? ou o path completo? pra efeito de testes!
e row[pasta] ali, tem um conteudo valido e permitido? nao ta retornando NULL ou algum nome q comece com caracter especial?