我正在尝试通过扩展Worx的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
原始文档中没有合适的例子,但我在互联网上找到了一些(包括这里的一个SO问题),并且根据它们的使用情况,我的用法似乎是正确的。
有人使用过这个函数吗?
我的备选方案是创建一个临时文件并进行清理 - 但这将意味着需要写入磁盘,而这个函数将作为大批处理的一部分使用,并且我希望尽可能避免慢速磁盘操作(旧服务器)。这只是一个短文件,但对于脚本发送电子邮件的每个人都有不同的信息。