last day (15 days later) » 

8:23 PM
0
A: Substituição de variaveis no corpo da mensagem

SergioPara substituir dentro de uma string podes usar o str_replace();. A sintaxe é: $stringFinal = str_replace("a substituir", "substituto", "string original"); Assim no teu caso poderia ser algo como $email = str_replace({{variavel}}, $variavel, $corpoDoEmail); Também podes usar arrays no s...

 
isso dá certo, porém se eu tiver 100 variáveis terei de fazer isso para cada uma das 100. Queria que fosse de forma automática. Já tentei com o preg_replace() mas não obtive nenhum resultado.
 
@ItaloIzaac podes explicar melhor na pergunta e juntar um exemplo? 100 variáveis diferentes no texto ou fazer a substituição para 100 textos diferentes?
@ItaloIzaac editei a resposta.
 
Eu dei uma pequena explicação no original, dê uma olhada. Obrigado desde já por tentar ajudar!
 
@ItaloIzaac o que queres dizer "de forma automática"? fazendo isso com arrays no str_replace é tb automático...
 
Mas eu teria que colocar cada uma das variaveis dentro do array ... de forma automática, sem eu precisar ter de adicionar mais uma variavel sempre que eu alterar uma dela.
 
8:24 PM
@ItaloIzaac oi
 
Oi
Tudo bem?
 
tudo bom
não estou a perceber ainda o que precisas
podes adicionar elementos a uma array dinamicamente
 
eu tenho no meu ambiente por exemplo 3 variaveis, $nome, $email, $cidade
 
ok...
 
no corpo da mensagem tenho {{nome}}, {{email}}, {{cidade}} simplismente gostaria de fazer a troca de valores de um pelo outro.
tentei fazer com o preg_replace(), mas sem sucesso
 
8:29 PM
eu acho que o str_replace é a ferramenta certa
assim:
 
um exemplo prático tempo no WHMCS ... não sei se tu já viste ...
 
$pedacos = array('{{nome}}', '{{mail}}', {{cidade}});
$substitutos = array($nome, $email, $cidade);
$output = str_replace($pedacos , $substitutos , $corpoDoEmail);
 
temos**
 
não vi, tens um link?
eu uso o str_replace nalguns sites para enviar mails da BD para o cliente
configurados "on the fly"
 
8:42 PM
on the fly?
pode me explicar o que seria?
 
se eu tiver tudo configurado certo quando um cliente faz um pagamento por exemplo ele recebe um mail automático (== on the fly) que têm um texto padrão onde eu mudei {{pedacos}} para o nome, morada, item pago etc
isso com o str_replace
se explicares melhor de onde vem os teus $nome, $mail etc posso ajudar mais. Imagino que o texto com {{}} seja estático
 
vem de formulários..
arrays na verdades
eu estou dando um extract nos arrays
 
ok, se vem de formulários podes usat $nome = $_POST['mail'] ou parecido (depois de verificar o conteudo), se já tens em array é só adaptar para a array que passas ao str_replace
 
será que da pra fazer um preg_match_all e fazer um foreach nos encontrados??
 
Se tens casos diferentes tens de fazer um preg_match para cada tipo, acho que vai dar mais trabalho. com o str_replace nem precisas de loop
@ItaloIzaac faz um exemplo aqui: ideone.com
 
9:16 PM
este é como tenho meu método...
estou tentando fazer um outro.ç
 
9:44 PM
acho que conseguir algo
 

  last day (15 days later) »