⑴ php中header頭設置無效的原因可能有哪些
一般來說在header函數前不能輸出html內容,類似的還有setcookie() 和 session 函數,這些函數需要在輸出流中增加消息頭部信息。
如果在header()執行之前有echo等語句,當後面遇到header()時,就會報出 「Warning: Cannot modify header information – headers already sent by ….」錯誤。
就是說在這些函數的前面不能有任何文字、空行、回車等,而且最好在header()函數後加上exit()函數。
⑵ 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);
?>
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 或 |),這樣可以報告所有需要的各級別錯誤。
例如,下面的代碼關閉了用戶自定義的錯誤和警告,執行了某些操作,然後恢復到原始的報錯級別
⑶ php中header()作用
header的用法
標頭 (header) 是伺服器以 HTTP 協義傳 HTML 資料到瀏覽器前所送出的字串,在標頭
與 HTML 文件之間尚需空一行分隔。有關 HTTP 的詳細說明,可以參 RFC 2068 官方文件
(http://www.w3.org/Protocols/rfc2068/rfc2068)。在 PHP 中送回 HTML 資料前,需先
傳完所有的標頭。
注意: 傳統的標頭一定包含下面三種標頭之一,並只能出現一次。
Content-Type: xxxx/yyyy
Location: xxxx:yyyy/zzzz
Status: nnn xxxxxx
在新的多型標頭規格 (Multipart MIME) 方可以出現二次以上。
使用範例
範例一: 本例使瀏覽器重定向到 PHP 的官方網站。
Header("Location: http://www.php.net";);
exit;
>?
範例二: 要使用者每次都能得到最新的資料,而不是 Proxy 或 cache 中的資料,可以使用下列的標頭
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
>?
範例三: 讓使用者的瀏覽器出現找不到檔案的信息。
header("Status: 404 Not Found");
>?
範例四:讓使用者下載檔案。
header("Content-type: application/x-gzip");
header("Content-Disposition: attachment; filename=文件名\");
header("Content-Description: PHP3 Generated Data");
?>
header重定向 就等價於替用戶在地址欄輸入url
---------------------------------
//剛好找到比較詳細的資料!
⑷ php header 函數不能正常跳轉的幾種解決辦法
PHP頁面跳轉一、header()函數
header()函數是PHP中進行頁面跳轉的一種十分簡單的方法。header()函數的主要功能是將HTTP協議標頭(header)輸出到瀏覽器。
header()函數的定義如下:
void header (string string [,bool replace [,int http_response_code]])
可選參數replace指明是替換前一條類似標頭還是添加一條相同類型的標頭,默認為替換。
第二個可選參數http_response_code強制將HTTP相應代碼設為指定值。 header函數中Location類型的標頭是一種特殊的header調用,常用來實現頁面跳轉。注意:1.location和「:」號間不能有空格,否則不會跳轉。
2.在用header前不能有任何的輸出。
3.header後的PHP代碼還會被執行。例如,將瀏覽器重定向到冠威博客
< ?php
//重定向瀏覽器
header("Location: http://www.guanwei.org");
//確保重定向後,後續代碼不會被執行
exit;
?>
PHP頁面跳轉二、Meta標簽
Meta標簽是HTML中負責提供文檔元信息的標簽,在PHP程序中使用該標簽,也可以實現頁面跳轉。 若定義http-equiv為refresh,則打開該頁面時將根據content規定的值在一定時間內跳轉到相應頁面。
若設置content="秒數;url=網址",則定義了經過多長時間後頁面跳轉到指定的網址。例如,使用meta標簽實現疫苗後頁面自動跳轉到冠威博客。
< meta http-equiv="refresh" content="1;url=http://www.guanwei.org">
例如,以下程序meta.php實現在該頁面中停留一秒後頁面自動跳轉到www.guanwei.org。
< ?php
$url = "http://www.guanwei.org"; ?>
< html>
< head>
< meta http-equiv="refresh" content="1; url=< ?php echo $url; ?>">
< /head>
< body>
頁面只停留一秒……
< /body>
< /html>
PHP頁面跳轉三、javaScript(常用、推薦)
例如,此代碼可以放在程序中的任何合法位置。
< ?php
$url = "http://www.guanwei.org";
echo "<script language='javascript' type='text/javascript'>";
echo "window.location.href='$url'";
echo "</script>";
?>
⑸ php header()鍑芥暟闂棰
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
榪欏嚑鍙ユ槸涓轟簡涓嶈╂祻瑙堝櫒瀵歸〉闈㈢殑鏁版嵁榪涜岀紦瀛橈紝浣塊〉闈㈡瘡嬈¤璁塊棶鏃訛紝鏄劇ず鐨勯兘鏄鏈鏂扮殑鏁版嵁銆