Comment puis-je obtenir ces étranges caractères lorsque j'essaie d '"echo" & # 8221; la chaîne html?

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

  •  08-07-2019
  •  | 
  •  

Question

J'envoie la fonction echo à mail via PHP à partir d'une variable incluant du code HTML. La chose étrange est que ce

<����}im�

apparaît après la chaîne .. mais je ne manipule plus avec elle. Le jeu de caractères de la fonction mail (la pièce jointe) est identique au jeu de caractères du code HTML.

Était-ce utile?

La solution

Problème d'encodage, peut-être qu'il essaie d'afficher du code binaire?

Vous devez utiliser htmlentities si vous souhaitez afficher du HTML

  

// Sorties: Un "devis" est

     

< b > bold < / b > echo

     

htmlentities ($ str);

Autres conseils

Ces caractères sont probablement des "indésirables". données dans votre chaîne. Selon la provenance de la chaîne, ces caractères peuvent être: des données TCP supplémentaires dans le socket après la page HTML, ou des données supplémentaires dans le fichier après la page HTML, ou bien quelqu'un d'autre insère ces caractères dans leur page HTML (peut-être leur fichier). été accidentellement corrompu ou pour une autre raison).

Vous pouvez envisager d'utiliser la classe htmlMimeMail pour gérer le courrier électronique. Ainsi, vous pouvez éviter les méchants éléments internes du courrier électronique.

C’est mon problème .. J'utilise le code de source Internet, la facture $ body est générée et cela envoie le courrier électronique .. Ces caractères se trouvent à la fin du fichier source HTML, mais je ne comprends pas pourquoi l'enfer ils sont 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 );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top