我试图通过添加一个方法来允许我使用字符串数据而不是文件路径添加附件,从而扩展了Worx的PHP邮件程序类。使用php://内存包装会导致错误
我想出了这样的事情:
public function addAttachmentString($string, $name='', $encoding = 'base64', $type = 'application/octet-stream')
{
$path = 'php://memory/' . md5(microtime());
$file = fopen($path, 'w');
fwrite($file, $string);
fclose($file);
$this->AddAttachment($path, $name, $encoding, $type);
}
但是,我得到的是一个PHP的警告:
PHP Warning: fopen() [<a href='function.fopen'>function.fopen</a>]: Invalid php:// URL specified
有与原文档的任何像样的例子,但我在互联网上发现了一对夫妇(包括one here on SO),根据他们的说法,我的用法显得很正确。
有没有人有使用过这方面的成功?
我的选择是创建一个临时文件并清理 - 但这意味着必须写入光盘,并且此功能将用作大批量处理的一部分,并且我希望避免缓慢的光盘操作(旧服务器) 在可能的情况。这只是一个简短的文件,但脚本电子邮件的每个人都有不同的信息。
我waaay到这个晚了,但不会在fclose()上删除内存缓冲区? – 2015-01-28 10:35:37