получить mimetype файла в виде строки (imap_fetchbody)

#php #linux #imap

#php #linux #imap

Вопрос:

Вы можете сделать это, если файл является файлом в файловой системе:

 shell_exec("file -bi $file")
  

Но как вы можете это сделать, если файл является строкой (еще не сохранен как файл)?

Строка / файл извлекается из электронного письма с imap_fetchbody()

Редактировать

 $body = imap_fetchbody($this->stream, $this->msgno, $section);

$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($body) . "n";

$file = Init::$dynamic['data_path'].$this->msgno.'_'.$part->dparameters[0]->value;
imap_savebody($this->stream, $file, $this->msgno, $section);

echo $finfo->file($file) . "n";
  

оба $finfo->buffer() и $finfo->file() возвращает text/plain; charset=us-ascii , даже если это PDF, PNG и т.д.?

Ответ №1:

Комментарии:

1. он всегда возвращается text/plain; charset=us-ascii , даже если его PDF, PNG и т. Д

2. Вы выгрузили $body, чтобы посмотреть, что в нем на самом деле?

3. Теперь я работаю .. каким-то образом вложение 1 = часть 2, вложение 2 = часть 3 и т.д. 🙂