如何解决php下载文件内容乱码的问题-PHP问题

资源魔 33 0

php下载文件内容乱码的处理方法:一、应用flush函数刷新输入缓冲;二、应用ob_clean函数清空输入缓冲区便可。

保举:《PHP视频教程》

PHP应用文件流下载文件办法(附:处理下载文件内容乱码成绩)

一、flush — 刷新输入缓冲

二、ob_clean — 清空(擦掉)输入缓冲区

此函数用来抛弃输入缓冲区中的内容。

此函数没有会销毁输入缓冲区,而像 ob_end_clean() 函数会销毁输入缓冲区。

注:下面2个函数能够处理PHP下载文件内容乱码

代码以下

// 文件名没有要用中文
//fname为要下载的文件名
    //$fpath为下载文件所正在文件夹,默许是downlod
    function download($fname,$fpath="download/"){ //防止中文文件名呈现检测没有到文件名的状况,进行转码utf-8->gbk $filename=iconv('utf-8', 'gb2312', $fname); $path=$fpath.$filename; if(!file_exists($path)){//检测文件能否存正在 echo "文件没有存正在!"; die(); } $fp=fopen($path,'r');//只读形式关上 $filesize=filesize($path);//文件巨细 //前往的文件(流方式) header("Content-type: application/octet-stream"); //依照字节巨细前往 header("Accept-Ranges: bytes"); //前往文件巨细 header("Accept-Length: $filesize"); //这里客户真个弹出对话框,对应的文件名 header("Content-Disposition: attachment; filename=".$filename); //================重点==================== ob_clean(); flush(); //=================重点=================== //设置分流 $buffer=1024; //来个文件字节计数器 $count=0; while(!feof($fp)&&($filesize-$count>0)){ $data=fread($fp,$buffer); $count+=$data;//计数 echo $data;//传数据给阅读器端 } fclose($fp); } download("CGEX剧本清单.doc");

以上就是若何处理php下载文件内容乱码的成绩的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!