¿Cómo obtengo estos caracteres extraños cuando intento "hacer eco" de la cadena html?

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

  •  08-07-2019
  •  | 
  •  

Pregunta

Estoy enviando la función echo to mail a través de PHP desde una variable que incluye código HTML. Lo extraño es que esto

<����}im�

aparece DESPUÉS de la cadena ... pero ya no manipulo con ella. El juego de caracteres de la función de correo (el archivo adjunto) es el mismo que el juego de caracteres del código HTML.

¿Fue útil?

Solución

Problema de codificación, ¿tal vez intenta mostrar código binario?

Debe usar htmlentities si desea mostrar HTML

  

// Salidas: una 'cita' es

     

< b > negrita < / b > echo

     

htmlentities ($ str);

Otros consejos

Esos caracteres son probablemente "basura" datos en su cadena. Dependiendo de dónde provenga la cadena, estos caracteres podrían ser: datos TCP adicionales en el socket después de la página HTML, o datos adicionales en el archivo después de la página HTML, u otra persona realmente puso estos caracteres en su página HTML (quizás su archivo fue dañado accidentalmente, o por alguna otra razón).

Podría considerar usar la clase htmlMimeMail para manejar el correo electrónico. Para que pueda evitar las desagradables partes internas del correo electrónico.

Este es el problema que tengo ... Utilizo el código de la fuente de Internet, se genera la factura $ body y esto envía el correo electrónico ... Esos caracteres están al final del archivo fuente HTML pero no entiendo por qué demonios están allí :(

$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 );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top