php - 如果在大于 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_strlen
on的可能性以及在获取简单 HTML dom的字符串后使用获取不同大小的可能性。我已经测试了两种方法,它们确实产生了相同的数字。$message
mb_strlenm
str_get_html($message)
对于可能出现的潜在问题,我有什么需要注意的吗?
解决方案
推荐阅读
- excel - 使用宏触发不同文件中的宏
- node.js - 有没有办法实现passport.js google身份验证来颤抖?
- php - SQL query doctrine symfony
- c# - 如何根据鼠标的位置增加浮点变量
- performance - lombok '@Slf4j' 会减慢对象初始化速度吗?
- postgresql - 如何优化 Postgres 中子串搜索的查询?
- python - 替换熊猫数据框中分类变量的值
- php - 如何在 laravel 中生成自定义主 ID?
- c++ - 进程间通信:传递 C 风格的结构与 C++ 对象
- powershell - 带有目录列表的 Powershell 中的 Robocopy