Как я могу получить эти странные символы, когда я пытаюсь "повторить" строку HTML? - PullRequest
0 голосов
/ 19 ноября 2008

Я посылаю эхо в почтовую функцию через PHP из переменной, содержащей код HTML. Странно то, что это

<����}im�

появляется ПОСЛЕ строки ... но я больше не манипулирую ею. Кодировка почтовой функции (вложение) такая же, как кодировка HTML-кода.

Ответы [ 4 ]

2 голосов
/ 19 ноября 2008

Проблема с кодировкой, может, она пытается отобразить двоичный код?

Вы должны использовать htmlentities, если хотите отобразить HTML

// Выходы: «цитата» равна

полужирный эхо

htmlentities ($ ул);

0 голосов
/ 20 ноября 2008

Это проблема, с которой я столкнулся .. Я использую код из интернет-источника, $ body генерирует счет-фактуру и отправляет электронное письмо. Эти символы находятся в конце исходного файла HTML, но я не понимаю, почему черт возьми, они там: (

$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 );
0 голосов
/ 19 ноября 2008

Вы можете использовать класс htmlMimeMail для обработки электронной почты. Таким образом, вы можете избежать неприятных внутренних сообщений.

0 голосов
/ 19 ноября 2008

Эти символы, вероятно, являются "ненужными" данными в вашей строке. В зависимости от того, откуда берется строка, эти символы могут быть следующими: дополнительные данные TCP в сокете после HTML-страницы или дополнительные данные в файле после HTML-страницы, или кто-то еще фактически помещает эти символы в свою HTML-страницу (возможно, их файл был случайно поврежден или по какой-либо другой причине).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...