PHP GD - 为Internet Explorer创建favicon.ico

时间:2011-09-04 04:19:39

标签: php internet-explorer gd ico

我有一个非常简单的PHP脚本,它创建了“favicon.ico”形式的jpg / gif / png上传文件。

这是功能的一部分:

$file = 'cache/'.$e .'/'. basename($_FILES['uploadfile']['name']);

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {  

$im = imagecreatefromjpeg($file);
    list($width, $height) = getimagesize($file);
    $image_p = imagecreatetruecolor("16", "16");
    imagecopyresampled($image_p, $im, 0, 0, 0, 0, "16", "16", $width, $height);
    $num = rand (1,99999);
    $output = $num."-favicon.ico";
    imagepng($image_p,'dl/'.$output);
    imagedestroy ($im);
    unlink ($file);
    echo 'success';  

} 

脚本工作正常!在Chrome中,Opera和Firefox生成的favicon显示效果很好,应该这样做。

但是在Interent Explorer 8中 - 它根本就没有显示出来。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你不能只将它保存为带有ico扩展名的PNG ......我猜测Chrome / Opera / Firefox无法读取文件,因此他们决定打开文件并找出实际内容格式不是依赖于文件扩展名,而IE则不是。

但是,你需要找到一个不同的解决方案来保存它作为ICO,因为GD不能自己做,你可以尝试ImageMagick或快速谷歌phpThumb似乎能够做(没试过)。