php輸出header
1. php 輸出視頻流怎樣設置header
header 好像不識別變數吧
我這也有一個函數 但是只能播放mp4的文件 如果你的能播放其他的視頻格式求分享
function PutMovie($file) {
header("Content-type: video/mp4");
header("Accept-Ranges: bytes");
$size = (filesize($file));
if(isset($_SERVER['HTTP_RANGE'])){
header("HTTP/1.1 206 Partial Content");
list($name, $range) = explode("=", $_SERVER['HTTP_RANGE']);
list($begin, $end) =explode("-", $range);
if($end == 0) $end = $size - 100;
}
else {
$begin = 0; $end = $size - 100;
}
header("Content-Length: " . ($end - $begin + 1));
header("Content-Disposition: filename=".basename($file));
header("Content-Range: bytes ".$begin."-".$end."/".$size);
$fp = fopen($file, 'rb');
fseek($fp, $begin);
while(!feof($fp)) {
$p = min(1024, $end - $begin + 1);
$begin += $p;
echo fread($fp, $p);
}
fclose($fp);exit;
}
2. 在PHP輸出頭寫入header("Content-type: text/html; charset=utf-8");出現如下問題
根據Warning信息
因為你已經加過一次header了
重復添加會出來警告
3. php 如何獲取 客戶端http header
<?php
$dir=$HTTP_GET_VARS["dir"];//.......取得上個頁面傳遞來的路徑
$file=$HTTP_GET_VARS["file"];//.......取得傳遞來的文件名
$url=parse_url($HTTP_REFERER);/*......取得前一頁面的URL地址,並將其放入一個數組中*/
if($url[host]!=$HTTP_HOST){echo"要下載本軟體請到<ahref=http://www.df365.org>東方小屋</a>";exit;}/*檢查來源網站是不是自己的網站,如果不是,返回「要下載本……」*/
if(empty($dir))$dir="/";//......如果路徑名為空,則為指定根目錄
if(empty($file)){echo"未指定要下載的文件!";exit;}/*如果文件名為空,返回「未指定……」*/
$rootdir="文件存放的根目錄";//......你的下載路徑根目錄
$realurl=$rootdir.$dir;//.......取得你的下載目錄
chdir($realurl);//......將當前目錄轉到下載目錄中
if(!file_exists($file)){echo"對不起,此鏈接已經失效,請在下載頁面上向我們報告,謝謝!";exit;}//......測試文件是否存在
$filename=$file;
//發送文件頭信息
header("Cache-control:private");//fixforIE
header("Content-Type:application/octet-stream");
header("Content-Length:".filesize($filename));
header("Content-Disposition:attachment;filename=$filename");
$fp=fopen($filename,'r');//以讀取方式打開指定文件
fpassthru($fp);//**CORRECT**以二進制方式讀取文件
fclose($fp);//關閉文件
?>
4. php如何在header()函數之前輸出內容
PHP 中 header()函數的作用是給客戶端發送頭信息。
什麼是頭信息?
這里只作簡單解釋,詳細的自己看http協議。
在 HTTP協議中,伺服器端的回答(response)內容包括兩部分:頭信息(header) 和 體內容,這里的頭信息不是HTML中的<head></head>部分,同樣,體內容也不是<BODY>< /BODY>。頭信息是用戶看不見的,裡麵包含了很多項,包括:伺服器信息、日期、內容的長度等。而體內容就是整個HTML,也就是你所能看見的全 部東西。
頭信息有什麼用呢?
頭信息的作用很多,最主要的有下面幾個:
1、跳轉:當瀏覽器接受到頭信息中的 Location: xxxx 後,就會自動跳轉到 xxxx 指向的URL地址,這點有點類似用 js 寫跳轉。但是這個跳轉只有瀏覽器知道,不管體內容里有沒有東西,用戶都看不到。
2、指定網頁的內容: 同樣一個XML文件,如果頭信息中指定:Content-type: application/xml 的話,瀏覽器會將其按照XML文件格式解析。但是,如果頭信息中是:Content-type: text/xml 的話,瀏覽器就會將其看作存文本解析。(瀏覽器不是按照擴展名解析文件的)
不知道大家有沒有注意,有些時候在一些網站下載東西,點下載連接以後,結果瀏覽器將這個附件當成網頁打開 了,裡面顯示的都是亂碼,這個問題也和頭信息有關。有時候瀏覽器根據Content-type 來判斷是打開還是保存,這樣有時就會判斷錯誤(主要是網站設計者忘記寫Content-type)。其實,還有一個可以來指定該內容為附件、需要保存,這 個就是:Content-Disposition: attachment; filename="xxxxx"
// 指定內容為附件
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// 打開文件,並輸出
readfile('original.pdf');
5. php中header執行後沒有輸出
<?php
$testStr="aaa";
$testStr="ccccccccc";
echo$testStr;
@header("HTTP/1.1304NotModified");
?>
這樣寫就行了。
至於為什麼要把echo寫在header的前面,你自己已經回答了,呵呵。頂你一個!
6. php的header之前不能有\輸出和空格為啥我有,卻不報錯
第一張圖如果之前有ob_start則echo的內容不會被輸出,所以header前沒有輸出
第二張圖,header前沒有任何輸出,11行是一個賦值語句,並沒有向瀏覽器發送任何數據
7. php 檢驗header前是否有輸出的判斷語句
header前有輸出怎麼辦,小濤分享一段代碼,可以用這個方法來判斷一下啊,哈哈:
if (!headers_sent($filename, $linenum)) {
@header(「Location:$url」);
exit;
}
else
{
$t = 「在文件$filename第$linenum行有字元輸出,不能跳轉,請更正 「;
echo $t;
exit;
}
8. PHP文件插入header("Content
header()前不能有任何輸出的。這和你用什麼記事本沒關系。
9. PHP文件插入header("Content-type: text/html; charset=utf-8"); 報錯
header("Conten-type:text/html;charset=utf-8");
寫錯了 少個 t應該是
header("Content-type:text/html;charset=utf-8");
或者這樣:
<?php
header("Content-type:text/html;charset=gb2312");
$dir="d:/";
$fp=opendir($dir);
while(($file=readdir($fp))!==false){
echo $file."<br>";
}
closedir($fp);
?>
(9)php輸出header擴展閱讀:
PHP中header('content-type:text/html;charset="utf-8')和error_reporting()的作用
1.header
PHP文件插入header("Content-type: text/html; charset=utf-8");
相當於頁面裡面的<meta http-equiv="Content-Type" content="text/html; charset=utf-8">;
目的:防止頁面出現亂碼
2.error_reporting
定義和用法:error_reporting()設置PHP的報錯級別並返回當前級別。
函數語法:error_reporting(report_level)
如果參數 level 未指定,當前報錯級別將被返回。下面幾項是level可能的值:
1:E_ERROR 致命的運行錯誤。錯誤無法恢復,暫停執行腳本。
2:E_WARNING 運行時警告(非致命性錯誤)。非致命的運行錯誤,腳本執行不會停止。
4:E_PARSE 編譯時解析錯誤。解析錯誤只由分析器產生。
8:E_NOTICE 運行時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。)
16:E_CORE_ERROR PHP啟動時初始化過程中的致命錯誤。
32:E_CORE_WARNING PHP啟動時初始化過程中的警告(非致命性錯)。
64:E_COMPILE_ERROR 編譯時致命性錯。這就像由Zend腳本引擎生成了一個E_ERROR。
128:E_COMPILE_WARNING 編譯時警告(非致命性錯)。這就像由Zend腳本引擎生成了一個E_WARNING警告。
256:E_USER_ERROR 用戶自定義的錯誤消息。這就像由使用PHP函數trigger_error(程序員設置E_ERROR)
512:E_USER_WARNING 用戶自定義的警告消息。這就像由使用PHP函數trigger_error(程序員設定的一個E_WARNING警告)
1024:E_USER_NOTICE 用戶自定義的提醒消息。這就像一個由使用PHP函數trigger_error(程序員一個E_NOTICE集)
2048:E_STRICT 編碼標准化警告。允許PHP建議如何修改代碼以確保最佳的互操作性向前兼容性。
4096:E_RECOVERABLE_ERROR 開捕致命錯誤。這就像一個E_ERROR,但可以通過用戶定義的處理捕獲(又見set_error_handler())
8191:E_ALL 所有的錯誤和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP6.0)任意數目的以上選項都可以用「或」來連接(用 OR 或 |),這樣可以報告所有需要的各級別錯誤。
例如,下面的代碼關閉了用戶自定義的錯誤和警告,執行了某些操作,然後恢復到原始的報錯級別
10. php 圖片輸出header問題
這個是使用了php的圖像處理函數,imagejpeg,或者是imagepng,取決於你的文件類型,詳情可以查手冊,這兩個函數的作用