欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 保存到桌面的代码,怎么加ICO图标跟乱码问题呢

程序员文章站 2022-04-28 12:39:51
...
$shortCut = "[InternetShortcut]URL=http://www.xxx.com/?zuomian2015IDList=[{000214A0-0000-0000-C000-000000000046}]Prop3=19,2";Header("Content-type: application/octet-stream");header("Content-Disposition: attachment; filename=某某网站.url;");echo $shortCut;


保存为UTF8模式下,CHROME下载正常,IE9下就某某网站变成乱码了
保存为ANSI格式下,CHROME下载某某网站变成乱码了,IE9又没变正常了


回复讨论(解决方案)

$shortCut = "[InternetShortcut]URL=http://www.xxx.com/?zuomian2015IDList=[{000214A0-0000-0000-C000-000000000046}]Prop3=19,2";Header("Content-type: application/octet-stream");$filename = '某某网站.url';$user_agent = $_SERVER['Http_User_agent'];$encode_filename = rawurlencode($filename);if(preg_match("/MSIE/", $user_agent)){	header('content-disposition:attachment; filename="'.$encode_filename.'"');}else if(preg_match("/Firefox/", $user_agent)){	header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');}else{	header('content-disposition:attachment; filename="'.$filename.'"');}echo $shortCut;

$shortCut = "[InternetShortcut]URL=http://www.xxx.com/?zuomian2015IDList=[{000214A0-0000-0000-C000-000000000046}]Prop3=19,2";Header("Content-type: application/octet-stream");$filename = '某某网站.url';$user_agent = $_SERVER['Http_User_agent'];$encode_filename = rawurlencode($filename);if(preg_match("/MSIE/", $user_agent)){	header('content-disposition:attachment; filename="'.$encode_filename.'"');}else if(preg_match("/Firefox/", $user_agent)){	header("content-disposition:attachment; filename*=\"utf8''".$filename.'"');}else{	header('content-disposition:attachment; filename="'.$filename.'"');}echo $shortCut;


可以加个ICO图标吗?

IconFile=图标路径 加这个参数

IconFile=图标路径 加这个参数


$shortCut = "[InternetShortcut]URL=http://www.xxx.com/?zuomian2015IconFile=/favicon.icoIDList=[{000214A0-0000-0000-C000-000000000046}]Prop3=19,2";Header("Content-type: application/octet-stream");header("Content-Disposition: attachment; filename=某某网站.url;");echo $shortCut;



这样无效,没反应

要用http://的

要用http://的


$shortCut = "[InternetShortcut]URL=http://www.xxx.com/?zuomian2015IconFile=http://c.csdnimg.cn/public/favicon.icoIDList=[{000214A0-0000-0000-C000-000000000046}]Prop3=19,2";Header("Content-type: application/octet-stream");header("Content-Disposition: attachment; filename=某某.url;");echo $shortCut;


还是无效

写法本身没错,你现在实际显示的图标是浏览器图标吧?

你改成这样看看
IconFile=http://www.vcoo.cc/favicon.ico

原因是图标格式不合要求

参考: http://blog.csdn.net/fdipzone/article/details/50423613

写法本身没错,你现在实际显示的图标是浏览器图标吧?

你改成这样看看
IconFile=http://www.vcoo.cc/favicon.ico

原因是图标格式不合要求



换成这个ico一样也不行,还是显示的是浏览器图标,就是CHROME图标了

参考: http://blog.csdn.net/fdipzone/article/details/50423613



感谢写了篇长文,但是经测试还是不能正常显示图标,不知道会否跟浏览器跟系统有关呢

那我就不知知道了
在我这里
IconFile=http://c.csdnimg.cn/public/favicon.ico 不行
IconFile=http://www.vcoo.cc/favicon.ico 可以

写法本身没错,你现在实际显示的图标是浏览器图标吧?

你改成这样看看
IconFile=http://www.vcoo.cc/favicon.ico

原因是图标格式不合要求



大婶,你还没退休啊? 新年快乐哈

找到原因了。如果你保存的网站.url是在收藏夹中收藏过的。就会显示到图标,否则不能显示图标。

因为那个图标是读浏览器缓存的。如果缓存中没有这个图标,则不显示。

例如你要做一个百度的
那么首先要收藏百度在浏览器。

然后IconFile=百度的favicon地址