Reduce PHP code

Asked

Viewed 46 times

0

How could I use a repeat loop to reduce the amount of lines in that code or if there is some other way to reduce all this?

<div class="form-group ">
    <input type="file" class="form-control mr-3 my-3" name="imagem2" id="input_imagem_2" required/>
    <small id="menuHelp" class="form-text text-muted">Primeira Imagem.</small>
</div>
if(isset($_FILES['imagem1']) && $_FILES['imagem1']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem1']['tmp_name'];
    $nome1 = $_FILES['imagem1']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome1 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome1;  

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem2']) && $_FILES['imagem2']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem2']['tmp_name'];
    $nome1 = $_FILES['imagem2']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome2 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome2;  

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem3']) && $_FILES['imagem3']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem3']['tmp_name'];
    $nome1 = $_FILES['imagem3']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome3 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome3;  

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem4']) && $_FILES['imagem4']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem4']['tmp_name'];
    $nome1 = $_FILES['imagem4']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome4 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome4;  

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem5']) && $_FILES['imagem5']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem5']['tmp_name'];
    $nome1 = $_FILES['imagem5']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome5 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome5;  

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem6']) && $_FILES['imagem6']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem6']['tmp_name'];
    $nome1 = $_FILES['imagem6']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome6 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome6; 

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}


if(isset($_FILES['imagem7']) && $_FILES['imagem7']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem7']['tmp_name'];
    $nome1 = $_FILES['imagem7']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome7 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome7; 

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem8']) && $_FILES['imagem8']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem8']['tmp_name'];
    $nome1 = $_FILES['imagem8']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome8 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome8; 

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}

if(isset($_FILES['imagem9']) && $_FILES['imagem9']['error'] == 0)
{
    $arquivo_tmp = $_FILES['imagem9']['tmp_name'];
    $nome1 = $_FILES['imagem9']['name'];


    // Pega a extensao
    $extensao = strrchr($nome1, '.');

    // Converte a extensao para mimusculo
    $extensao = strtolower($extensao);

    // Somente imagens, .jpg;.jpeg;.gif;.png
    // Aqui eu enfilero as extesões permitidas e separo por ';'
    // Isso server apenas para eu poder pesquisar dentro desta String
    if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
    {
        // Cria um nome único para esta imagem
        // Evita que duplique as imagens no servidor.
        $imagemNome9 = md5(microtime()) . '.' . $extensao;

        // Concatena a pasta com o nome
        $destino = '../img_usuario_tema_1/' . $imagemNome9; 

        // tenta mover o arquivo para o destino
        if( @move_uploaded_file( $arquivo_tmp, $destino  ))
        {  
        }
    }
}
  • 1

    Could describe in words what are code entries, what it does and what is the output generated?

  • good and to save files, in case images in case that would be the html code <div class="form-group ">&#xA; <input type="file" class="form-control mr-3 my-3" name="imagem2" id="input_imagem_2" required/>&#xA; <small id="menuHelp" class="form-text text-muted">Primeira Imagem.</small>&#xA; </div>

  • what changes is the name="imagem2", name="imagem3" and so on.. but the code in php for checking the files ends up being very large

1 answer

1

The $_FILES is a associative array, then you can make use of the foreach and go through all sent items.

Example:

<?php

// criando vetor com as extensões permitidas
$extensoesPermitidas = ['.jpg','.jpeg','.gif','.png'];

// percorro todas as chaves no vetor.
foreach($_FILES as $arquivo) {
    if($arquivo['error'] == 0)
    {
        // recupera a extensão e coloca a mesma em caixa baixa
        $extensao = strtolower(strrchr($nome1, '.'));

        // verificando quais a extensões permitidas
        if(in_array($extensao, $extensoesPermitidas))
        {
            // criando nome para imagem
            $nomeImagem = md5(microtime() . '_' . uniqid()) . '.' . $extensao;

            // Concatena a pasta com o nome
            $destino = '../img_usuario_tema_1/' . $nomeImagem;  

            // tenta mover o arquivo para o destino
            move_uploaded_file($arquivo['tmp_name'], $destino)
        }
    }
}
  • Anderson, I edited with fonts. But for a better understanding of its part $_FILES is rather an associative array, the foreach brings by default the value and not the key of the array. Only the value of the associative array is another associative array and inside these yes there is the key tmp_name.

  • Gosh, forget it, my bad. I mistook it when it sends more than one file with the same name. I’m sorry.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.