繁体   English   中英

如果在大于 MAX_FILE_SIZE 时无法检索,如何捕获 str_get_html(简单 HTML Dom)错误

[英]How to catch str_get_html (Simple HTML Dom) error if fails to retrieve when larger than MAX_FILE_SIZE

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

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

我一直在尝试trycatch它似乎不起作用。 我也试过做

$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);
}

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

我唯一担心的是,我不确定在 MySQL 的$message上使用mb_strlen是否可能发生false positive ,以及在使用str_get_html($message)获取字符串后使用mb_strlenm获得不同大小的可能性,这很简单 HTML大教堂。 我已经测试了两种方法,它们确实产生了相同的数字。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM