這篇文章主要介紹php下載文件亂碼怎么辦,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

php下載文件亂碼的解決辦法:1、使用flush函數(shù)刷新輸出緩沖解決PHP下載文件內(nèi)容亂碼;2、使用ob_clean函數(shù)清空輸出緩沖區(qū)解決PHP下載文件內(nèi)容亂碼。
PHP使用文件流下載文件方法(附:解決下載文件內(nèi)容亂碼問題)
1、flush — 刷新輸出緩沖
2、ob_clean — 清空(擦掉)輸出緩沖區(qū)
此函數(shù)用來丟棄輸出緩沖區(qū)中的內(nèi)容。
此函數(shù)不會(huì)銷毀輸出緩沖區(qū),而像 ob_end_clean() 函數(shù)會(huì)銷毀輸出緩沖區(qū)。
注:上面2個(gè)函數(shù)可以解決PHP下載文件內(nèi)容亂碼
代碼如下
// 文件名不要用中文
//fname為要下載的文件名
//$fpath為下載文件所在文件夾,默認(rèn)是downlod
function download($fname,$fpath="download/"){
//避免中文文件名出現(xiàn)檢測不到文件名的情況,進(jìn)行轉(zhuǎn)碼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");
//按照字節(jié)大小返回
header("Accept-Ranges: bytes");
//返回文件大小
header("Accept-Length: $filesize");
//這里客戶端的彈出對話框,對應(yīng)的文件名
header("Content-Disposition: attachment; filename=".$filename);
//================重點(diǎn)====================
ob_clean();
flush();
//=================重點(diǎn)===================
//設(shè)置分流
$buffer=1024;
//來個(gè)文件字節(jié)計(jì)數(shù)器
$count=0;
while(!feof($fp)&&($filesize-$count>0)){
$data=fread($fp,$buffer);
$count+=$data;//計(jì)數(shù)
echo $data;//傳數(shù)據(jù)給瀏覽器端
}
fclose($fp);
}
download("CGEX腳本清單.doc");以上是“php下載文件亂碼怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享文章:php下載文件亂碼怎么辦-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article2/hhoic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、ChatGPT、建站公司、軟件開發(fā)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)