php - 将 HTML 输出转换为 BLOB 图像
问题描述
我想采取一些步骤将数据作为 BLOB 数据类型保存到 DB 中。我需要将数据转换为数据库中的 BLOB。我在某个文件中有被视为 HTML 输出的数据。选择的编程语言是带有 Zend Framework 1 的 PHP,数据库是 MySQL。
我试图将 HTML 页面保存为数据库中的有效 BLOB 图像,但它仍然无法正常工作。我找不到任何解决方案,我不知道该怎么做。当我从 URL 获取内容并使用函数 file_get_contents($url) 将其作为 BLOB 保存到 DB 中时,这对我来说很好。
这是一个将 HTML 页面的内容保存在下面描述的文件中作为 BLOB 到 DB 中的代码。
$file = "C:\test.html";
$fp = fopen($file, 'r');
$content = fread($fp, filesize($file));
fclose($fp);
$dbModel = new MyTable($this->db);
$dbRowSet = $dbModel->find(1);
$dbRow = $dbRowSet->current();
$dbRow->map = $content;
$dbRow->save();
这是在 DB 中保存的 HTML 页面的预览,但我无法显示任何 BLOB 图像。
显示了 BLOB 图像。我有 URL 页面并尝试将其保存到数据库中。
我预计将数据(HTML 页面)保存到 DB 中的结果应该是 DB 包含有效的 BLOB 图像。
谢谢您的帮助。
解决方案
您可以从此链接下载 wkhtmltoimage 。有一个适用于所有操作系统的版本,所以这应该不是问题。然后你可以像这样使用它:
$path="wkhtmltoimg/wkhtmltoimage.exe"; //path to your executable
$url="http://google.com";
$output_path="test.png";
shell_exec("$path $url $output_path");
您要注意的一件事是,如果 PHP 处于安全模式,shell_exec 将无法工作,您将无法进行转换。
信用:@Tom 将 HTML 转换为 php 中的图像
在此之后,您只需要file_get_contents()并将 blob 保存在数据库中。
推荐阅读
- r - 使用 R 将每个字符行转换为字符串
- python - 如何在字符串中查找模式并在 HTML 代码中替换
- android - 如果使用 Dagger2 初始化对象,是否仍然需要检查其是否为空?
- c# - 我团队的一位高级开发人员告诉我,编写这样的 SQL 命令是安全的,“因为它是参数化的”,但我不明白如何
- corda - 如何修复在测试网错误中将cordapp部署到corda节点
- ssas - 年初至今的 MDX 计算量度
- angular - Angular:如何在服务组件内缓存 api 调用的响应?
- angular - 属性“_touched”是私有的,只能在“AbstractControl”类中访问。?
- java - 来自钱包的虚假推送和未更改的传递错误
- reactjs - 如何为 CRA 包制作可配置的 json 文件