我试图通过添加一个方法来扩展 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
原始文档没有任何像样的示例,但我在互联网上找到了一些示例(包括这里有一个 https://stackoverflow.com/questions/1522066/php-create-file-and-send-as-attachment-without-actually-creating-the-file/1522086#1522086),根据他们的说法,我的用法似乎是正确的。
有人使用这个取得过成功吗?
我的替代方法是创建一个临时文件并清理 - 但这意味着必须写入光盘,并且此功能将用作大型批处理过程的一部分,我希望尽可能避免缓慢的光盘操作(旧服务器)。这只是一个简短的文件,但对于脚本通过电子邮件发送的每个人都有不同的信息。
只是php://memory
。例如,
<?php
$path = 'php://memory';
$h = fopen($path, "rw+");
fwrite($h, "bugabuga");
fseek($h, 0);
echo stream_get_contents($h);
产生“bugabuga”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)