Jump to content
Wise

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

Recommended Posts

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

Edited by brunoais
geshi

Share this post


Link to post
Share on other 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%.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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);
}

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.