存档

文章标签 ‘乱码’

php下载函数,支持更改保存时的文件名称【修复ie中文乱码问题】

2014年11月12日 没有评论

<?php
//*********文件下载时隐藏文件真实路径,并更改下载文件名的函数**************************
function is_ie() {
$useragent = strtolower($_SERVER[‘HTTP_USER_AGENT’]);
if((strpos($useragent,’opera’)!==false) || (strpos($useragent,’konqueror’)!==false)) {return false;}
if(strpos($useragent,’msie ‘)!==false) {return true;}
return false;
}
function download($file_path,$file_name,$file_type=”application/octet-stream”){
if(!file_exists($file_path)) {return false;}
$content_len=sprintf(“%u”,filesize($file_path));
if (is_ie()) {$file_name=urlencode($file_name);}
else {$file_name=&$file_name;}
while(ob_get_length()!==false) {@ob_end_clean();}
header(‘Pragma: public’);
header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’).’ GMT’);
header(‘Cache-Control: no-store, no-cache, must-revalidate’);
header(‘Cache-Control: pre-check=0, post-check=0, max-age=0’);
header(‘Content-Transfer-Encoding: binary’);
header(‘Content-Encoding: none’);
header(‘Content-type: ‘.$file_type);
header(‘Content-Disposition: attachment; filename=”‘.$file_name.'”‘);
header(“Content-length: $content_len”);
echo file_get_contents($file_path);//这里有return和echo是一样的,不会返回值,只会在这里输出文件
exit();
}
//开始下载
$chk=download(“../upfile/”.$_GET[“url”],$_GET[“title”].strrchr($_GET[“url”],”.”));
?>

分类: php学习 标签: , ,

nginx反向代理出现乱码的解决方法

2013年8月21日 没有评论

今天将最后的几个网址转移使用nginx反向代理技术

但是在转移过程中发生了乱码的问题

情况如下:

1,要转移的网站是asp做的

2,nginx监听的是80端口

3,iis监听的是81端口

用域名:81端口访问,可以正常访问,无乱码,但是直接通过nginx反向之后出现乱码,查看网站源文件,的确发现一个问题,编写在代码里面的编码是gb2312,但是很明显浏览器却识别为utf-8

不知道为什么,反正可以肯定的是nginx反向的过程中出现了问题,要不然怎么直接通过端口号访问是正确的呢?

所以考虑可能是以下2个原因:

1,nginx反向代理配置中的编码问题

2,nginx反向代理中gzip压缩的问题

通过查看和排除,原来nginx默认的编码为utf-8,而我的asp编码是gb2312,结果我修改如下,保存并重启,搞定:

charset gb2312;

那么完整的nginx反向代理出现乱码的解决方法到此结束

分类: nginx技巧 标签: ,
css.php