php做的下载代码自动添加bom头?

php做的下载代码自动添加bom头?,第1张

我刚试了下.因为我在linux下.所以压缩的时候是压成了test.tar.gz然后直接下载后能打开再换成.rar

后,下载后就打不开了.出现了你这个问题我估计是

header('Content-Encoding:

none')

header("Content-type:

application/octet-stream")

header("Accept-Ranges:

bytes")

header("Accept-Length:

".filesize($file_dir."/".$file_name))

header(

'Content-Transfer-Encoding:

binary'

)这几个header产生的.

网上有示例的

<?php

/*检测并清除BOM*/  

if(isset($_GET['dir'])){  

    $basedir=$_GET['dir']  

}else{  

    $basedir = '.'  

}   

$auto = 1   

checkdir($basedir)  

function checkdir($basedir){  

    if($dh = opendir($basedir)){  

        while(($file = readdir($dh)) !== false){  

            if($file != '.' && $file != '..'){  

                if(!is_dir($basedir."/".$file)){  

                    echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"  

                }else{  

                    $dirname = $basedir."/".$file  

                    checkdir($dirname)  

                }  

            }  

        }//end while  

    closedir($dh)  

    }//end if($dh  

}//end function  

function checkBOM($filename){  

    global $auto  

    $contents = file_get_contents($filename)  

    $charset[1] = substr($contents, 0, 1)   

    $charset[2] = substr($contents, 1, 1)   

    $charset[3] = substr($contents, 2, 1)   

    if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){  

        if($auto == 1){  

            $rest = substr($contents, 3)  

            rewrite ($filename, $rest)  

            return "<font color=red>BOM found, automatically removed.</font>"  

        }else{  

            return ("<font color=red>BOM found.</font>")  

        }  

    }   

    else return ("BOM Not Found.")  

}//end function  

function rewrite($filename, $data){  

    $filenum = fopen($filename, "w")  

    flock($filenum, LOCK_EX)  

    fwrite($filenum, $data)  

    fclose($filenum)  

}//end function  

?>

bom里面字段

ID //不变,每个零件给个id是必须的

pid 用户存储相关的id,可以存入相关的id,用“,”分隔开,在查询的时候获取到$row['pid'],然后用expload()根据逗号分隔开,然后数组在循环带入查找这个相关的id,在获取其他的信息。

art_no //不变

art_name //不变


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11413851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存