使用PHP和XML创建1000个图像的CSS精灵

使用PHP和XML创建1000个图像的CSS精灵,php,xml,sprite,Php,Xml,Sprite,我有一个包含大约1000个图像URL的XML文件。我想用PHP创建所有图像的精灵 XML文件的大小约为30 MB 图像大小约为15kb 我怎样才能完成它? 这是我的代码(我得到致命错误:允许的内存大小…): xpath('//image')作为$image){ $src=imagecreatefromjpeg('test/'.$image->picture->attributes()..jpg'); 如果($增加_宽度='15000'){ $增加_宽度='0'; $增加高度+=200; }

我有一个包含大约1000个图像URL的XML文件。我想用PHP创建所有图像的精灵

  • XML文件的大小约为30 MB
  • 图像大小约为15kb
我怎样才能完成它?

这是我的代码(我得到致命错误:允许的内存大小…):

xpath('//image')作为$image){
$src=imagecreatefromjpeg('test/'.$image->picture->attributes()..jpg');
如果($增加_宽度='15000'){
$增加_宽度='0';
$增加高度+=200;
}
imagecopymerge($dest,$src,$increasing_width,$increasing_height,0,0,150,200,100);
}
imagejpeg($dest,'15000x2000.jpg');
?>

您将需要增加成本。

在代码的开头插入:

ini_set('memory_limit','128M'); # Default: 128M
ini_set('max_execution_time', 30); # Default 30
“请注意,要没有内存限制,请将此指令设置为-1。”-php.net


如果在内存足够后超时,则需要增加内存

在代码的开头插入:

ini_set('memory_limit','128M'); # Default: 128M
ini_set('max_execution_time', 30); # Default 30

从命令行运行PHP时,默认设置为0。-php.net

是否分配更多内存?听起来它将是一个巨大的图像(像素级),需要一公吨的内存。我有两个问题:为什么要将数字与字符串进行比较,以及
允许的内存大小实际上是多少?我想到了两个建议:要么增加php.ini中的memory_limit指令,要么使用ImageMagick()库而不是GD2还有一个问题:当解析XML或创建图像时,您是否会遇到致命错误?虽然图像不大,但原因是现在您的脚本读取整个XML并将其放入数组中(几乎与XML本身大小相同),所以逐行读取将解决您的问题