Como faço para obter esses caracteres estranhos quando eu tento “echo” a string html?

StackOverflow https://stackoverflow.com/questions/300259

  •  08-07-2019
  •  | 
  •  

Pergunta

Estou enviando o eco a função mail via PHP da variável que inclui o código HTML. O estranho é, que este

<����}im�

aparece depois da string .. mas eu não manipular com isso mais. O charset da função mail (anexo) é o mesmo que charset de código HTML.

Foi útil?

Solução

Codificação problema, talvez ele tenta exibir o código binário?

Você deve usar htmlentities se or deseja exibir HTML

// saídas: A 'citação' é

negrito echo

htmlentities ($ str);

Outras dicas

Esses personagens são provavelmente os dados "lixo" em sua seqüência. Dependendo de onde a corda está vindo esses personagens podem ser: dados TCP extras na tomada depois que a página HTML, ou dados adicionais no arquivo depois que a página HTML, ou alguém realmente colocar esses personagens em sua página HTML (talvez o seu arquivo foi acidentalmente danificado, ou por algum outro motivo).

Você poderia considerar o uso do href="http://www.phpguru.org/static/mime.mail.html" rel="nofollow noreferrer"> htmlMimeMail classe para lidar com o e-mail. Então você pode evitar os internos desagradável e-mail.

Este é o problema que tenho .. Eu uso o código de fonte da Internet, a US $ corpo é gerado factura e este enviar o e-mail .. Esses personagens são no final do arquivo de origem HTML, mas eu não entendo por que o diabos eles estão lá: (

$to = 'email@email.com';
$subject = 'Invoice';
$random_hash = md5(date('r', time()));
$headers = "From: mymail@mymail.com\r\nReply-To: webmaster@example.com";
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$body=rtrim(chunk_split(base64_encode($body))); 
//define the body of the message.
ob_start(); //Turn on output buffering
?>
--PHP-mixed-<?php echo $random_hash; ?> 
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit

Hello World!!!
This is simple text email message.

--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 7bit

Text Emailu.

--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="UTF-8"; name="faktura.html" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment 

<?php echo htmlentities($body); ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
scroll top