作为我自己的"看看"教程,我正在构建一个PHP脚本来从POP3邮箱收集电子邮件.在尝试使用二进制附件时,我一直试图弄清楚如何处理附件信息.
给定一个将从电子邮件中收集的字符串:
------ = _ Part_16735_17392833.1229653992102内容类型:image/JPEG; 名称= trans2.jpg内容传输编码:BASE64 X-附件-ID:f_fow87t5j0内容处置:附件; 文件名= trans2.jpg
/ 9J/4AAQSkZJRgABAgEASABIAAD/4QxrRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAUAAAAcgEyAAIAAAAUAAAAhodp
(......)
EAgEAgEAgEAgEAg8IBQRL/Lbe/tJrScHqZ2lkmE4XUP2XcSDZZ2VvZ28dtbsDIYmhkbRxAIJCAQC AQCAQf/ScyAQCAQCAQCAQCAQCAQCAQCAQCAQCAQf/9k = ------ = _ Part_16735_17392833.1229653992102--
有没有办法将数据保存到磁盘,以便它是一个可用的格式?
将数据传递给base64_decode()以获取二进制数据,使用file_put_contents()将其写入文件
如果您有大量需要写入的数据需要在写入之前进行解码,我建议使用流过滤器,以便在编写数据时对数据进行解码...
$fh = fopen('where_you_are_writing', 'wb'); stream_filter_append($fh, 'convert.base64-decode'); // Do a lot of writing here. It will be automatically decoded from base64. fclose($h);