php string attachement-将字符串中的csv附加到电子邮件
我想重写下面的代码来生成一个字符串。我要将此字符串附加到eamil。它应该显示为csv文件php string attachement-将字符串中的csv附加到电子邮件,php,email,Php,Email,我想重写下面的代码来生成一个字符串。我要将此字符串附加到eamil。它应该显示为csv文件 $fh = fopen($file,'w'); function __outputCSV(&$vals, $key, $filehandler) { fputcsv($filehandler, $vals, ';', '"'); } array_walk($aData, '__outputCSV', $fh); fclose($fh); 有什么想法
$fh = fopen($file,'w');
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals, ';', '"');
}
array_walk($aData, '__outputCSV', $fh);
fclose($fh);
有什么想法吗?您最好的选择是获得一个与MIME兼容的电子邮件类,该类可以发送带有附件的电子邮件。我记得不久前使用过RMail或PHPMimeMail,你必须用谷歌搜索它 否则,您需要学习如何自己构建MIME邮件。但是,尽管有这么多值得一试的麻烦,我还是建议你去上一门已经为你做了这些的课程 编辑: 一开始我不明白你的问题,也许你应该完全重新格式化并更改你的标题。以下是我的建议:
$data = '';
foreach($aData as $aDataLine) {
foreach($aDataLine as $aDataKey => $aDataField) {
$aDataLine[$aDataKey] = '"'.str_replace('"', '\\"', $aDataField).'"';
}
$data .= implode(',', $aDataLine)."\n";
}
//$data contains your CSV
我不认为我忘记了什么,它应该是开箱即用的…明显而懒惰的方法不是重写它,而是简单地创建一个临时文件,然后调用file\u get\u contents 然而,这会很无聊,因此我将建议一种可以说过于复杂的方法,但它应该很好地工作,并且将完全在内存中完成: 使用PHP手册中提供的内容作为如何编写自定义协议处理程序的示例,以及以下示例代码:
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals, ';', '"');
}
stream_wrapper_register("var", "VariableStream");
$myCSVdata = "";
$fh = fopen('var://myCSVdata', 'w');
array_walk($aData, '__outputCSV', $fh);
fclose($fh);
echo $myCSVdata; // Ta Da!
可能的副本,我将与Zend_邮件一起发送。这不是问题所在。关键是要得到正确的字符串。