首页 > 解决方案 > 如果在大于 MAX_FILE_SIZE 时无法检索,如何捕获 str_get_html(简单 HTML Dom)错误

问题描述

我的脚本的一部分从 AWS SES S2 Bucket 检索电子邮件时遇到问题,当获取电子邮件正文时,它会查找 Base64 内联图像并将其转换为图像文件,然后将该图像上传到 S3 存储桶和然后src将图像的 更改为该 URL。

问题是有时一封电子邮件会包含比我MAX_FILE_SIZE文件中的文件大的内联图像和/或simple_html_dom.php文件。当然,我可以只增加大小,但最终我必须限制我愿意解析的电子邮件的大小。

我一直在尝试做一个try并且catch似乎不起作用。我也试过做

$message = str_get_html($body);
if ($message) {
    // process email
} else {
    // Email to big skip images.
}

但这甚至没有机会检查错误,因为脚本将在$message = str_get_html($body);

有没有一种方法可以捕获错误str_get_html()

我做了什么

为了解决这个问题,我做了以下工作

$size = mb_strlen($body_of_email, '8bit');
if ($size < 25000000) {
    $message = str_get_html($string);
}

存储在 MySQL 表中,这$message就是我检索它的方式。

我唯一担心的是,我不确定从 MySQL 中false positive使用mb_strlenon的可能性以及在获取简单 HTML dom的字符串后使用获取不同大小的可能性。我已经测试了两种方法,它们确实产生了相同的数字。$messagemb_strlenmstr_get_html($message)

对于可能出现的潜在问题,我有什么需要注意的吗?

标签: phpfile-get-contentssimple-html-dom

解决方案


推荐阅读