data mask with php

Asked

Viewed 85 times

0

I am trying unsuccessfully to replace the values returned from a database field, which returns a ckeditor html code.

I’m trying to do it this way:

$class = new Selecionar();
    $class->setProcesso($processo);
    $class->setTitulo($anexo);
    $class->setUserid($userid);
    $dados = $class->getAnexosByProcesso();

    function str_replace_string($search, $replace, $subject) {
        return str_replace($search, $replace, $subject);
    }

    $mask = array('%NOME%', '%EMAIL%', '%CPF%', '%RG%', '%TELEFONE%', '%RUA%', '%NUMERO%', '%BAIRRO%', '%CIDADE%', '%ESTADO%', '%CEP%', '%OBJETO%');

    $values = array($dados['nome'], $dados['email'], $dados['cpf'], $dados['rg'], $dados['telefone'], $dados['rua'], $dados['numero'], $dados['bairro'], $dados['cidade'], $dados['uf'], $dados['cep'], $dados['objeto']);

    $resultado = str_replace_string($mask[0], $values[0], $dados['modelo']);
    $resultado .= str_replace_string($mask[1], $values[1], $dados['modelo']);
    $resultado .= str_replace_string($mask[2], $values[2], $dados['modelo']);
    $resultado .= str_replace_string($mask[3], $values[3], $dados['modelo']);
    $resultado .= str_replace_string($mask[4], $values[4], $dados['modelo']);
    $resultado .= str_replace_string($mask[5], $values[5], $dados['modelo']);
    $resultado .= str_replace_string($mask[6], $values[6], $dados['modelo']);
    $resultado .= str_replace_string($mask[7], $values[7], $dados['modelo']);
    $resultado .= str_replace_string($mask[8], $values[8], $dados['modelo']);
    $resultado .= str_replace_string($mask[9], $values[9], $dados['modelo']);
    $resultado .= str_replace_string($mask[10], $values[10], $dados['modelo']);
    $resultado .= str_replace_string($mask[11], $values[11], $dados['modelo']);

    echo $resultado;

I need it to replace the corresponding Intel of the 2 arrays shown above ($Mask and $values), I want to replace the $Mask masks with the value of $values simultaneously, I have tried to use for and foreach unsuccessfully, I tried with fetchAll() in sql also unsuccessfully.

The way it is it returns me only the first value, when I use foreach it returns me the last value, some idea of how to do it?

1 answer

0

I was able to do it this way:

function str_replace_string($search, $replace, $subject) {
        return str_replace($search, $replace, $subject);
    }

    $mask = array('%NOME%', '%EMAIL%', '%CPF%', '%RG%', '%TELEFONE%', '%RUA%', '%NUMERO%', '%BAIRRO%', '%CIDADE%', '%ESTADO%', '%CEP%', '%OBJETO%');

    $values = array($dados['nome'], $dados['email'], $dados['cpf'], $dados['rg'], $dados['telefone'], $dados['rua'], $dados['numero'], $dados['bairro'], $dados['cidade'], $dados['uf'], $dados['cep'], $dados['objeto']);
//    $resultado = array();
    for ($i = 0; $i < count($mask); $i++) {
        $resultado = str_replace_string($mask, $values, $dados['modelo']);

    }

     echo $resultado;

I did the loop and the error was that I was indexed the variables, in this case she was breaking the strings of each Indice, what I did was take the [$i] of the arrays, now I get all values replaced.

Browser other questions tagged

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