<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                php 文件下載損壞 ob_flush():把數據從PHP的緩沖(buffer)中釋放出來。 flush():把不在緩沖(buffer)中的或者說是被釋放出來的數據發送到瀏覽器。 ob_start(); //打開緩沖區 echo \"Hellon\"; //輸出 header("location:index.php"); //把瀏覽器重定向到index.php ob_end_flush();//輸出全部內容到瀏覽器 所有對header()函數有了解的人都知道,這個函數會發送一段文件頭給瀏覽器, 但是如果在使用這個函數之前已經有了任何輸出(包括空輸出,比如空格,回車和換行)就會提示出錯。 如果我們去掉第一行的ob_start(),再執行此程序,我們會發現得到了一條錯誤提示:"Header had all ready send by"! 但是加上ob_start,就不會提示出錯,原因是當打開了緩沖區, echo后面的字符不會輸出到瀏覽器,而是保留在服務器,直到你使用 flush或者ob_end_flush才會輸出, 所以并不會有任何文件頭輸出的錯誤! ob_get_contents() - 返回輸出緩沖區的內容 ob_flush() - 沖刷出(送出)輸出緩沖區中的內容 ob_clean() - 清空(擦掉)輸出緩沖區 ob_end_flush() - 沖刷出(送出)輸出緩沖區內容并關閉緩沖 ob_end_clean() - 清空(擦除)緩沖區并關閉輸出緩沖 flush() - 刷新輸出緩沖     通常是ob_flush();flush()同時一起使用 使用ob_start()把輸出那同輸出到緩沖區,而不是到瀏覽器。 然后用ob_get_contents得到緩沖區的數據。 ob_start()在服務器打開一個緩沖區來保存所有的輸出。所以在任何時候使用echo , 輸出都將被加入緩沖區中,直到程序運行結束或者使用ob_flush()來結束。 然后在服務器中緩沖區的內容才會發送到瀏覽器,由瀏覽器來解析顯示。 函數ob_end_clean 會清除緩沖區的內容,并將緩沖區關閉,但不會輸出內容。 此時得用一個函數ob_get_contents()在ob_end_clean()前面來獲得緩沖區的內容。 這樣的話, 能將在執行ob_end_clean()前把內容保存到一個變量中,然后在ob_end_clean()后面對這個變量做操作。 ```php 基本文件下載代碼 if (empty($url) || false === @fopen($url, 'rb')) { exit('文件不存在'); } // 處理中文名 $filename = basename($url); $user_agent = $_SERVER["HTTP_USER_AGENT"]; if (false !== stripos($user_agent, 'Trident')) { $filename = rawurlencode($filename); } // 文件目標 list($host, $dl_file) = explode('download', $url); $server_addr = $_SERVER['SERVER_ADDR']; if (false !== stripos($host, $server_addr)) { // 本地文件 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('X-Accel-Redirect: /download' . $dl_file); exit; } else { // 文件在其他節點服務器 $header = get_headers($url, 1); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Length: ' . $header['Content-Length']); readfile($url); exit; }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看