Я пытаюсь расширить класс почтовой программы PHP от Worx, добавив метод, который позволяет мне добавлять вложения, используя строковые данные вместо пути к файлу.
Я придумал что-то вроде этого:
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 ), и мое использование кажется правильным согласно им.
Кто-нибудь имел какой-либо успех с использованием этого?
Моя альтернатива - создать временныйфайл и очистка - но это будет означать необходимость записи на диск, и эта функция будет использоваться как часть большого пакетного процесса, и я хочу, где это возможно, избегать медленных операций на диске (старый сервер).Это всего лишь короткий файл, но он содержит разную информацию для каждого человека, которого сценарий отправляет по электронной почте.