Php Zend_邮件在客户端发送特殊字符破坏电子邮件

Php Zend_邮件在客户端发送特殊字符破坏电子邮件,php,zend-framework,Php,Zend Framework,我使用Zend_Mail发送日志文件的电子邮件,但它发送的是邮件客户端不喜欢的狡猾字符 我的代码: <?php $sBody = "errors.log (>= WARN):\n\n"; $rFile = fopen($sErrorsLog, "r"); while (!feof($rFile)) { $sLine = fgets($rFile); $sBody.= $sLine; } $oMail = new Zend_Mail(); $oMail->add

我使用Zend_Mail发送日志文件的电子邮件,但它发送的是邮件客户端不喜欢的狡猾字符

我的代码:

<?php
$sBody = "errors.log (>= WARN):\n\n";
$rFile = fopen($sErrorsLog, "r");
while (!feof($rFile))
{
    $sLine = fgets($rFile);
    $sBody.= $sLine;
}

$oMail = new Zend_Mail();
$oMail->addTo($sTo)
      ->setFrom($sFrom)
      ->setSubject($sSubject)
      ->setBodyText($sMessage);

PHP的序列化数据在任何序列化对象的私有或受保护成员之前包含一个空字节

您需要取消序列化并重新处理输出,或者需要在发送电子邮件之前删除空字节。

我使用以下方法解决了此问题:

$text = filter_var($text, FILTER_SANITIZE_SPECIAL_CHARS);

啊,这是有道理的。有没有一种简单的方法可以去掉空字节?我刚刚用str_替换了(“\0”,”,$sLine);它似乎起作用了:)谢谢!这几乎是做这件事的标准方式,是的。:)