Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos.
Como posso trazer os dados do banco e fazer com o que o php seja interpretado?
Tenho uma tabela onde gravo as mensagens chamada de tb_mensagens e contida a mensagem abaixo em uma de suas linhas do campo email_body
Olá {$this->Dados['nome']}, continuação de uma frase em {$this->Dados['data']}.
Eu tenho uma classe chamada **Cron **que faz a verificação de datas e faz o disparo de emails, retornando o valor de** $this-Dados **(mencionado acima) de acordo com a validação.** Faz isso corretamente.**
<?php
class Cron {
private $Data;
private $Post;
private $Error;
private $Result;
public function ExeRead($Data){
$this->Data = $Data;
$read = new Read;
$read->ExeRead('exe_pedidos',"WHERE pedido_status_order = '1'");
if($read->getResult()):
foreach ($read->getResult() as $res): // Armazena os dados do cliente
if($this->Data > $res['pedido_data']):
// Traz o email que precisa ser disparado
$read->ExeRead('exe_email', "WHERE email_id = '12' ");
foreach ($read->getResult() as $email);
$mail = new Email;
$mail->formEnviar($res, $email); // Armazena o resultado do cliente e do email
if ($mail->getError()):
echo 'Mensagem enviada';
else:
echo 'Mensagem não enviada';
endif;
endif;
endforeach;
else:
$this->Result = false;
endif;
}
public function getError() {
return $this->Error;
}
public function getResult() {
return $this->Result;
}
}private function setMsg() {
$this->Mensagem = $this->Dados['email_body'];
}
Só que o envio não saí interpretado com os dados que recupero:
Olá {$this->Dados['nome']}, continuação de uma frase em {$this->Dados['data']}.
Onde os dados acima estão armazenados em **$this->Dados['email_body'];**
Mas se eu fizer:
private function setMsg() {
$this->Mensagem = $this->Dados['email_body'] . $this->Dados['nome'] ;
}
O **$this->Dados['nome']** saí com o nome correspondente (Olafercocam).
Como posso fazer para que seja interpretado, em vez da variável o seu valor?
Consegui utilizando o preg_match_all and str_replace