繁体   English   中英

如何不使用.htaccess压缩图片?

[英]How can I gzip images without using .htaccess?

Godaddy不会为我启用mod_gzip,因此我必须使用以下标头:

<?php 
ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
$offset = 60 * 60 * 24 * 7;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
?>

在这种情况下,这将适用于CSS文件

无论如何,如何将其用于图像? 我的意思是,制作图像:image.php并将该代码放在顶部,但使用header("Content-type: image/png; charset: UTF-8"); 不起作用,请告诉我。

压缩图像不值得。 缩小幅度很小,甚至是负的,因为图像格式已经在压缩方面做得非常好。 尝试压缩JPG文件以了解我的意思。

此外,压缩难以压缩的数据非常耗费处理器资源,您最终可能会使用更多而不是更少的资源。

Yahoo性能规则确认了这一点:

图片和PDF文件不应压缩,因为它们已经被压缩。 尝试对它们进行gzip压缩不仅浪费CPU,而且可能会增加文件大小。

另外,请记住,使用PHP进行压缩时,每次请求进入时都会启动一个PHP进程。最好不要完全压缩静态资源(除非您为流量支付了很多钱)。 压缩通常应该是Web服务器的工作,而不是PHP。

通常,gzip,压缩GIF,PNG或JPEG图像不会产生超过百分之几的收益(实际上,“压缩”文件可能比原始文件大)。 如果您真的想用纯PHP做到这一点,请使用mod_rewrite(或修改的图像URL)将URL重定向到php脚本。 然后,输出像

<?php
header('Content-Type:image/png');
echo file_get_contents('img.php');

确实有效(在您的实验中,您可能无意间在二进制PNG图像中添加了空格,从而破坏了它)。

暂无
暂无

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

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