Mit der Funktion header() von PHP können Sie Seitensprünge erzielen, z. B.
1 |
header( "Location: " . $url );
|
Aber es gibt einen Nachteil Sobald der HTTP-Header-Block gesendet wurde, können Sie die Funktion header() nicht mehr zum Senden anderer Header verwenden.
Derzeit können Sie nur Front-End-HTML- oder JS-Technologie verwenden, um Seitensprünge zu erzielen!
Woher wissen Sie, dass der HTTP-Header-Block gesendet wurde?
Die PHP-Funktion headers_sent() kann helfen.
PHP headers_sent()-Funktion
headers_sent()-Funktion prüft, ob und wohin HTTP-Header gesendet wurden.
Gibt true zurück, wenn der Header gesendet wurde, andernfalls false.
Syntax
headers_sent(file,line)
参数 |
描述 |
file,line |
可选。 如果设置 file 和 line 参数,headers_sent() 会把输出开始的 PHP 源文件名和行号存入 file 和 line 变量中。 |
Tipps und Hinweise
Hinweis: Sobald der Header-Block vorhanden ist gesendet wurde, können Sie die Funktion header() nicht zum Senden anderer Header verwenden. Durch die Verwendung dieser Funktion können zumindest Fehlermeldungen im Zusammenhang mit HTTP-Headern vermieden werden.
Hinweis: Die optionalen Datei- und Zeilenparameter sind neu in PHP 4.3.
Beispiel 1
4 | header( "Location: http://www.w3school.com.cn/" ); |
Beispiel 2
Verwenden Sie optional The Datei- und Zeilenparameter:
02 | // 传递 $file 和 $line,供日后使用 |
04 | if (!headers_sent( $file ,
$line )) { |
05 | header( "Location: http://www.w3school.com.cn/" ); |
07 | // Trigger an error here |
09 | echo "Headers sent in $file on line $line" ; |
Basierend auf den oben genannten Wissenspunkten können wir unsere eigene PHP-Sprungfunktion aussortieren :
03 |
* @param string $url 跳转地址
|
04 |
* @param int $time 跳转延时(单位:秒)
|
05 |
* @param string $msg 提示语
|
07 |
function redirect( $url ,
$time = 0, $msg = '' ) {
|
08 |
$url = str_replace ( array ( "n" ,
"r" ), '' ,
$url ); // 多行URL地址支持
|
10 |
$msg = "系统将在 {$time}秒 之后自动跳转到 {$url} !" ;
|
13 |
$str = "<meta http-equiv='Refresh' c/code><code>;
|
20 |
header( "Location: " . $url );
|
22 |
header( "Content-type: text/html; charset=utf-8" );
|
23 |
header( "refresh:{$time};url={$url}" );
|
Das Obige stellt die PHP-Umleitungs-Webseite vor, einschließlich der relevanten Inhalte. Ich hoffe, dass sie für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.