Jump to content
Fórum Script Brasil
  • 0

Função Para Trocar Aspas Por Barra Aspas Em Php


ADL
 Share

Question

Olá pessoal sou novato em php e estou dando namutenção no site da empresa. Eu tenho uma parte do site que é onde envia mensagem para os clientes só que antes de enviar essa mensagem ela vai para o banco de dados, por tanto vai também todo o html. Eu gostaria de saber como fazer uma função que percorre todo o texto html e onde ele encontrar uma aspas ele substituir por barra aspas. Alguém pode me ajudar por favor ou me disser como começar estou pesquisando no google, mas a sque eu achei so retira de uma palavra. Desde de já eu agradeço a todos.

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Você pode utilizar as funções implode() e explode() .

http://www.php.net/manual/pt_BR/function.implode.php

http://www.php.net/manual/pt_BR/function.explode.php

Vamos supor que a mensagem se encontra na variável $mensagem

O código, portanto, será o seguinte:

$mensagemcorrigida = implode("\\\"", explode("\"", $mensagem));
Aí é só você salvar a variável $mensagemcorrigida no database! Você poderá também utilizar a função strtr() . http://www.php.net/manual/pt_BR/function.strtr.php
<?php
$mensagemcorrigida = strtr($mensagem, "\"", "\\\"");
?>
Ou também, a ereg_replace() . http://www.php.net/manual/pt_BR/function.ereg-replace.php
$mensagemcorrigida = ereg_replace ("\"", "\\\"", $mensagem);

Link to comment
Share on other sites

  • 0

pra substituir tem a função str_replace ....

se você quer substituir aspas duplas o codigo seria esse

$novo_texto = str_replace('"', '\"', $string);

onde $string contem essa mensagem que você quer mudar... $novo_texto vai conter a string com os valores modificados...

acho que é isso que você precisa.

abraço brother, espero ter ajudado

Link to comment
Share on other sites

  • 0

Vou testar obrigado por enquanto!

Então eu fiz assim $mensagemcorrigida = implode("\\\"", explode("\"", $mensagem)); e a função está colocando duas barras com aspas. Como eu faria para a função colocar uma barra e uma aspas assim \"

Link to comment
Share on other sites

  • 0

É, realmente isso foi inexperado.

Fiz os testes aqui e ele até começa fazendo certinho, depois ele passa a adicionar as outras barras.

Algum bug, será?

Bom, em todo caso, coloquei um espaço após as strings, creio que resolverá o problema:

$mensagemcorrigida = implode("\\\" ", explode("\" ", $mensagem));

Posta aí os resultados!

Link to comment
Share on other sites

  • 0

Ai eu fiz assim e deu certo $novo_texto = str_replace('"', '\"', $texto); vai entender ne rsrsrrs. Me tira uma dúvida nesse texto eu tenho links que redireciona para outra página. quando eu enconsto o ponteiro do mouse nele aparece um monte de número e não abre a página. fui no banco e olhei ta tudo certinho sem tirar e nem colocar as informações. Quando chega não abre a olink e aparece um monte de número o que pode ser? Ai muito obrigado pela ajuda de todos vocês mesmo heim.

Link to comment
Share on other sites

  • 0

Qual é o campo que você está utilizando?

Acabei de testar aqui com um campo VARCHAR e este funcionou sem problemas.

Pode ser também alguma coisa no HTML que o PHP interprete como função ou comando, precisaríamos dar uma olhada no mesmo para poder resolver estas pendências.

Link to comment
Share on other sites

  • 0

esse é o código para mandar o email ele busca a mensagem do banco.

<?

include "valida_cookies.php";

include "config.php";

?>

<?

// ALTERAR SOMENTE O TEXTO QUE ESTIVER ENTRE AS TAGS <HTML> E </HTML>

// SALVAR E FAZER UPLOAD

$titulo = $_POST['titulo'];

$texto = $_POST['texto'];

$sql=mysql_query("SELECT empresa,contato,email,titulo,texto,id FROM $tb3,$tabela");

if(!$sql){

echo "Erro ao localizar usuários em tabela da base de dados !<br>";}

else

{

while ($reg = mysql_fetch_array($sql))

{

$titulo1 = $reg['titulo'];

$mensagem= $reg['texto'];

$mensagem1 = trim($mensagem);

$empresa= $reg['empresa'];

$contato= $reg['contato'];

$email= $reg['email'];

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: Honda Dias Estevão Ferreira Advogados<meu email>";

mail("$email"," $titulo1 $titulo",

"Prezado(a) $contato, <p>

$mensagem1

$texto","$headers");

echo "Envio número<b> $cont </b>para :<b> $email </b><br>";

}

echo "<CENTER>Mensagem enviada com sucesso !<BR><BR><a href=\"envia.php\" target=\"_self\">Enviar outra mensagem</a></CENTER>";

}

?>

Os campos lá são 3:

1 titulo, e mensagem onde eu coloquei TEXT por ser grande e um id INT AUTO_INCREMENT. valeu a ajuda ai cara.

Edited by ADL
Link to comment
Share on other sites

  • 0
Ai eu fiz assim e deu certo $novo_texto = str_replace('"', '\"', $texto); vai entender ne rsrsrrs. Me tira uma dúvida nesse texto eu tenho links que redireciona para outra página. quando eu enconsto o ponteiro do mouse nele aparece um monte de número e não abre a página. fui no banco e olhei ta tudo certinho sem tirar e nem colocar as informações. Quando chega não abre a olink e aparece um monte de número o que pode ser? Ai muito obrigado pela ajuda de todos vocês mesmo heim.

ADL, estou com um problema semelhante. A única diferença é que não envio nem busco a informação no DB. Coleto o texto num formulário e na pagina seguinte processo em php para enviar um email. O problema é que eu uso um editor de texto (TYNY) no formulário, e quando eu insiro um link o email chega com o link quebrado. Usei a função acima e tentei mas nada. O email vai do mesmo jeito quebrado os links.

Como posso tratar os dados pra poder enviar o email normalmente? alguém pode me ajudar

Eu coleto os dados assim:

$texto = $_POST['mensagem'];

Então na funcao mail (pra saber que estou codificando o email para html) eu faço assim:

$headers = 'MIME-Version: 1.0' . "\r\n";

$headers .= 'Bcc:' . $endereco . "\r\n";

$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

// Additional headers

$headers .= 'From: Nome do meu contato <[email protected]>' . "\r\n";

Estou com este problema, alguém me ajude, por favor

Link to comment
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
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...