1. 程式人生 > >PHP的header函式頭部輸出的問題解析

PHP的header函式頭部輸出的問題解析

<?php
/*
 header('Location : http://segmentfault.com/');這個方法,是在響應頭裡面,發一個302重定向。而響應頭當然要比響應主體要提前輸出。
 */
echo "<html></html>";
header('location:http://www.baidu.com');
/*但是執行以上發現成功跳轉名,是因為這種並不符合HTTP規範的HTTP頭,很可能整個HTTP Response都無法解析。
幸運的是,PHP貌似為你修復了這個HTTP頭格式問題。
關於HTTP頭先發的問題,的確不應該在HTTP內容輸出之後輸出HTTP頭。但是伺服器會快取輸出,雖然你使用了echo或者print,但在那個時刻伺服器還沒有將這些內容作為HTTP報文輸出,這個時候你仍然有機會修改HTTP頭。
如果你只是單純想要引發一個錯誤的話,參考例2
*/

//例2
echo "<html></html>";
ob_flush();#輸出緩衝區中的內容
flush();#重新整理緩衝區,函式不會對伺服器或客戶端瀏覽器的快取模式產生影響。因此,必須同時使用 ob_flush() 和 flush() 函式來重新整理輸出緩衝
// We'll be outputting a PDF
header('location:http://www.baidu.com');
?>

相關推薦

PHP的header函式頭部輸出的問題解析

<?php /* header('Location : http://segmentfault.com/');這個方法,是在響應頭裡面,發一個302重定向。而響應頭當然要比響應主體要提前輸出。

Problem B: 呼叫函式輸出100到200之間的所有素數

#include <stdio.h> int isPrime(unsigned int n)//定義素數函式 { int i; if(n == 0 || n == 1) return 0; for(i = 2; i * i <= n; i++)

C# socket 程式設計之 accept() 函式返回值解析

accept() 函式會返回一個新的套接字,這個新的套接字在伺服器端與客戶端進行通訊。 伺服器端的繫結監聽是一個套接字,與客戶端通訊的是另一個套接字(accept函式返回的套接字,注意這裡不是返回客戶端的套接字,返回的套接字是新建立在伺服器上的,與客戶端收發訊息用的) 下面這段程式碼,是

呼叫函式輸出Fibonacci數列的m項至n項

Description 定義遞迴函式fib(n),它的功能是返回第n項Fibonacci數,如fib(7)的返回值是13。 在主函式中,輸入兩個正整數m和n,呼叫該函式輸出Fibonacci數列的m項至n項,共(n-m+1)項。 Fibonacci序列為:1 1 2 3 5 8 13 21…

Python中讀取檔案輸出時在頭部輸出\ufeff

問題出現: 在我測試python中的文字檔案的讀取與寫入時,用到了字典物件來儲存讀出的資料。 1 std_data = dict() 2 with open(sys.argv[1], encoding='UTF-8') as fp: 3 alldata = fp.readlines() 4

PHP array_reduce()函式的應用解析

例項 向用戶自定義函式傳送陣列中的值,並返回一個字串: <?php function myfunction($v1,$v2) { return $v1 . "-" . $v2; } $a=array("Dog","Cat","Horse"); print_r(array_reduce(

Oracle DB 使用單行函式定製輸出

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【python】詳解map函式的用法之函式並行作用解析

Python函式程式設計中的map(func, seq1[, seq2,…]) 函式是將func作用於seq中的每一個元素,其中seq須是可迭代物件,並將所有的呼叫的結果作為一個list返回。如果func為None,作用同zip()。 本文參考自:Python中map()函式淺析一文,感謝精彩分享。 下面

Oracle OCP 學習日誌-使用單行函式定製輸出-03

1.兩種函式型別 2.字元函式 字元函式 LOWER(column|expression) 將字母字元值轉換為小寫 UPPER(column|expression) 將字母字元值轉換為大寫

(C/C++學習心得)5.C++中的虛繼承-虛擬函式-多型解析

1 #include<iostream> 2 using namespace std; 3 4 class bed 5 { 6 public: 7 bed(float l,float wi,float we) 8 :len(l),wid(w

嵌入式linux網路程式設計,網路資訊檢索函式,域名解析gethostbyname(),網路屬性設定setsockopt(),網路超時優化,心跳檢測

文章目錄 1,網路資訊檢索函式 2,域名解析 2.1,gethostbyname() 2.2,gethostbyaddr() 2.3 錯誤處理 herror()、hstrerror() 2.4 釋放hostent結構體end

損失函式loss改進解析

題圖依然來自Coco!上篇地址: YaqiLYU:人臉識別的LOSS(上)​ zhuanlan.zhihu.com Feature Normalization Liu Y, Li H, Wang X. Rethinking feature discri

python 輸入三個變數,然後按小到大輸出(解析)

python 例項解析(1) vim 2_python.py x = int(input('please input x:'))   y = int(input('please input y:'))   z = int(input('please input z:'))

spring配置檔案頭部配置解析(applicationContext.xml)

分享一個好的學習網站:http://how2j.cn?p=4509      相信大家對spring的配置檔案應該都看的很多了,那麼大家對配置檔案頭部的那一坨坨的東西到底是什麼瞭解嗎?下面我就把自己的一些見解和大家分享一下: 首先拿一段大家熟悉的頭部配置檔案來看

Linux程式設計之ioremap函式的例項解析

void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 入口: phys_addr:要對映的起始的IO地址; size:要對映的空間的大小; flags:要對映

thinkphp的dump函式輸出

Thinkphp的dump函式 /** * 瀏覽器友好的變數輸出 * @param mixed $var 變數 * @param boolean $echo 是否輸出 預設為True 如果為

JavaScript 函式原型鏈解析

在JavaScript中,函式原型鏈是最強大也是最容易讓人迷惑的特性。長期以來對於prototype和__proto__的一知半解導致在實際開發中經常遇到難以排查的問題,所以有必要將JavaScript中的原型概念理解清楚。 1. __proto__ v

【C語言】main函式的引數解析

main函式 每個C程式都必須有一個main函式,main函式又稱為主函式,是執行程式的起點,它被稱之為函式,是否會像平時使用函式時需要自己的引數呢? 答案是肯定的,那麼他都有那些引數呢? main函式的在vs2017環境下除錯,可以看到main函式裡的三個引數

函式輸出某一個範圍數字中的所有質數

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>輸出某一個範圍數字中的所有質數</title>

Python基礎之型別轉換函式輸出格式化,if條件語句等測試

說明:python為3.x。在pycharm中測試通過 """ python區分大小寫 目前已經測試過得函式 print(x):將x輸出到控制檯 type(x):檢視x的變數型別 input():變數輸入,使用者輸入的任何內容Python都認為是一個字串 """ #