0

我有一个用 PHP 动态生成并输出到浏览器的非常大的图像。(它宽 5000 像素,高 1000-2000 像素。这是我网站上的日常用户活动图)。

问题是现在情节太大了,PHP脚本给出了内存耗尽的错误(生成的PNG本身非常小),因此我无法获得图像。

有没有办法以某种方式使用PNG格式的GD输出这个大图像?

(ps:我运行站点的主机使用安全模式,所以我无法修改配置,我认为他们使用的是默认的 PHP 安装。)

EDIT1:这是一个管理脚本。除了我,没有用户看到它。

EDIT2:示例图像可以在这里看到:http: //users.atw.hu/calmarius/trash/wtfb2/x.png (我还可以选择按 IP 地址对曲目进行分组。)

每个用户+IP 对都有自己的 24 小时轨迹。每个绿色标记都表示一个用户活动。如您所见,此图像可以逐轨输出。并且不需要一次输出和生成整个东西。

这个网站将是一个在线策略游戏,我想在未来使用这个图表来更容易地检测多账户。(试图通过注册多个帐户而不是只有 1 个帐户来获得优势的用户。)但这是一个不同的问题。

我正在使用 PHP 脚本,因为我懒得从数据库中导出请求日志,下载它并将数据提供给一个可以为我制作情节的程序。;)

4

2 回答 2

2

在处理图像之前将内存限制设置为无限制。

ini_set('memory_limit', '-1');
于 2011-03-29T09:17:24.023 回答
0

说明您如何生成图像(GD 库,ImageMagick)以及如何输出它会有所帮助。您是否将文件保存到目录然后使用 readfile() 输出它?如果是,fopen / fread / echo 组合比使用 readfile() 将文件输出到浏览器快大约 50%-60%。你使用gzip压缩吗?php执行的时间限制是多少?您收到的确切错误消息是什么?

于 2011-03-29T09:31:57.210 回答