Ir para o conteúdo
Wise

[Resolvido] Undefined offset: 9 (Criar pastas recursivamente)

Mensagens Recomendadas

Wise

Boas pessoal.

Estou aqui com um problema e não estou a perceber como se resolve!

Tenho aqui este código que cria as pastas caso o directorio não exista:

if(is_dir($desired_dir)==false){
$paths = explode("/", $desired_dir);

$partial_path = "/".$paths[0];


$actual_path = 0;
while( $actual_path < count($paths) ) {
if(!is_dir($partial_path)) mkdir($partial_path);
$partial_path .= $paths[++$actual_path] . "/";
    }
}

E o código funciona e cria as pastas, o problema é que aparece este erro:

Notice: Undefined offset: 9

Não consigo perceber como resolver, alguém sabe o que se passa??

No explode antes tinha split(), mas como estou com php5 mudei para explode

cumps

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Já experimentaste

$partial_path .= $paths[$actual_path++] . "/";

em vez de:

$partial_path .= $paths[++$actual_path] . "/";

?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

eis a razão porque é desaconselhado brincar com os operadores de incremento no meio das instruções : quem está desatento, faz bronca.

talvez agora ganharás a prática de fazer desta maneira:

$partial_path .= $paths[$actual_path] . "/";
$actual_path++;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Wise

eis a razão porque é desaconselhado brincar com os operadores de incremento no meio das instruções : quem está desatento, faz bronca.

talvez agora ganharás a prática de fazer desta maneira:

$partial_path .= $paths[$actual_path] . "/";
$actual_path++;

Isso não resolveu também :/

Já experimentaste

$partial_path .= $paths[$actual_path++] . "/";

em vez de:

?

Engraçado, já tinha tentado isso (pois costumo fazer assim) mas assim ainda gerou mais erros e a pasta nem é criada :s

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

e que tal fazeres tudo numa só linha ?

if(!is_dir($desired_dir)) mkdir($desired_dir, 0777, true /* recursive */);


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Wise

Bem resolvi isto de uma maneira mais fácil.

Criei uma função e depois no ficheiro chamei a função e não deu nenhum erro, ocupa menos espaço e tudo.

Função:

function criar_pastas($caminho) {
//Verifica se o caminho existe
if (is_dir($caminho) || file_exists($caminho)) return;
//Se não existir, cria-o
mkdir($caminho, 0777, true);
}

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.