zoukankan      html  css  js  c++  java
  • 转 PHP Header常用的HTTP协议函数及方法

    <?PHP 
        /** 
        * HTTP Protocol defined status codes
        * HTTP协议状态码,调用函数时候只需要将$num赋予一个下表中的已知值就直接会返回状态了。
        * @param int $num
        */ 
        function https($num) { 
            $http = array ( 
     => "HTTP/1.1 100 Continue", 
     => "HTTP/1.1 101 Switching Protocols", 
     => "HTTP/1.1 200 OK", 
     => "HTTP/1.1 201 Created", 
     => "HTTP/1.1 202 Accepted", 
     => "HTTP/1.1 203 Non-Authoritative Information", 
     => "HTTP/1.1 204 No Content", 
     => "HTTP/1.1 205 Reset Content", 
     => "HTTP/1.1 206 Partial Content", 
     => "HTTP/1.1 300 Multiple Choices", 
     => "HTTP/1.1 301 Moved Permanently", 
     => "HTTP/1.1 302 Found", 
     => "HTTP/1.1 303 See Other", 
     => "HTTP/1.1 304 Not Modified", 
     => "HTTP/1.1 305 Use Proxy", 
     => "HTTP/1.1 307 Temporary Redirect", 
     => "HTTP/1.1 400 Bad Request", 
     => "HTTP/1.1 401 Unauthorized", 
     => "HTTP/1.1 402 Payment Required", 
     => "HTTP/1.1 403 Forbidden", 
     => "HTTP/1.1 404 Not Found", 
     => "HTTP/1.1 405 Method Not Allowed", 
     => "HTTP/1.1 406 Not Acceptable", 
     => "HTTP/1.1 407 Proxy Authentication Required", 
     => "HTTP/1.1 408 Request Time-out", 
     => "HTTP/1.1 409 Conflict", 
     => "HTTP/1.1 410 Gone", 
     => "HTTP/1.1 411 Length Required", 
     => "HTTP/1.1 412 Precondition Failed", 
     => "HTTP/1.1 413 Request Entity Too Large", 
     => "HTTP/1.1 414 Request-URI Too Large", 
     => "HTTP/1.1 415 Unsupported Media Type", 
     => "HTTP/1.1 416 Requested range not satisfiable", 
     => "HTTP/1.1 417 Expectation Failed", 
     => "HTTP/1.1 500 Internal Server Error", 
     => "HTTP/1.1 501 Not Implemented", 
     => "HTTP/1.1 502 Bad Gateway", 
     => "HTTP/1.1 503 Service Unavailable", 
     => "HTTP/1.1 504 Gateway Time-out"  
            ); 
            header($http[$num]); 
        };
        
        //200 正常状态
        header('HTTP/1.1 200 OK');
    
        // 301 永久重定向,记得在后面要加重定向地址 Location:$url
        header('HTTP/1.1 301 Moved Permanently');
    
        // 重定向,其实就是302 暂时重定向
        header('Location: http://www.maiyoule.com/');
    
        // 设置页面304 没有修改
        header('HTTP/1.1 304 Not Modified');
    
        // 显示登录框,
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: Basic realm="登录信息"');
        echo '显示的信息!';
    
        // 403 禁止访问
        header('HTTP/1.1 403 Forbidden');
         
        // 404 错误
        header('HTTP/1.1 404 Not Found');
    
        // 500 服务器错误
        header('HTTP/1.1 500 Internal Server Error');
         
        // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.maiyoule.com/ /> 相同)
        header('Refresh: 3; url=http://www.maiyoule.com/');
        echo '10后跳转到http://www.maiyoule.com';
         
        // 重写 X-Powered-By 值
        header('X-Powered-By: PHP/5.3.0');
        header('X-Powered-By: Brain/0.6b');
         
        //设置上下文语言
        header('Content-language: en');
         
        // 设置页面最后修改时间(多用于防缓存)
        $time = time() - 60; //建议使用filetime函数来设置页面缓存时间
        header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');
    
        // 设置内容长度
        header('Content-Length: 39344');
         
        // 设置头文件类型,可以用于流文件或者文件下载
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="example.zip"'); 
        header('Content-Transfer-Encoding: binary');
        readfile('example.zip');//读取文件到客户端

    
    
    //禁用页面缓存 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Pragma: no-cache'); //设置页面头信息 header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); header('Content-Type: image/jpeg'); header('Content-Type: application/zip'); header('Content-Type: application/pdf'); header('Content-Type: audio/mpeg'); header('Content-Type: application/x-shockwave-flash'); //.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富 ?>

     PHP 文件下载代码 收藏

    public function downloads($name){
            $name_tmp = explode("_",$name);
            $type = $name_tmp[0];
            $file_time = explode(".",$name_tmp[3]);
            $file_time = $file_time[0];
            $file_date = date("Y/md",$file_time);
            $file_dir = SITE_PATH."/data/uploads/$type/$file_date/";    
            
            if (!file_exists($file_dir.$name)){
                header("Content-type: text/html; charset=utf-8");
                echo "File not found!";
                exit; 
            } else {
                $file = fopen($file_dir.$name,"r"); 
                Header("Content-type: application/octet-stream");
                Header("Accept-Ranges: bytes");
                Header("Accept-Length: ".filesize($file_dir . $name));
                Header("Content-Disposition: attachment; filename=".$name);
                echo fread($file, filesize($file_dir.$name));
                fclose($file);
            }
        }
  • 相关阅读:
    listView控件演示程序
    猪悟能淘宝商品下载专家v3版开发手记
    c# WebClient类
    分隔控件splitter演示程序
    C#中SESSIONID的获取
    工具栏toolBar演示程序
    Cookie总结
    C#获取网页源码并且自动判断网页字符集编码
    如何在Google Code上建立私有代码版本库
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  • 原文地址:https://www.cnblogs.com/yxbs/p/2892935.html
Copyright © 2011-2022 走看看