ホームページ  >  記事  >  バックエンド開発  >  PHPでヘッダージャンプを実装する方法

PHPでヘッダージャンプを実装する方法

WJ
WJオリジナル
2020-05-29 15:29:065820ブラウズ

PHPでヘッダージャンプを実装する方法

PHP でヘッダージャンプを実装する方法と注意事項:

header() 関数は、PHP でページジャンプするための非常に便利なメソッドです。簡単な方法。 header() 関数の主な機能は、HTTP プロトコル ヘッダー (ヘッダー) をブラウザに出力することです。

header() 関数は次のように定義されます。

void header (string string [,bool replace [,int http_response_code]])


オプションのパラメーター replace は、以前の同様のヘッダーを置き換えるか、同じタイプのヘッダー (www.php.php.php) を追加するかを示します。 cn) ヘッダー、デフォルトでは置換されます。

2 番目のオプションのパラメータ http_response_code は、HTTP 対応コードを指定された値に強制します。 header 関数の Location タイプ ヘッダーは特別なヘッダー呼び出しであり、ページ ジャンプの実装によく使用されます。注:

1.location と「:」記号の間にスペースを入れることはできません。スペースを入れないとジャンプしません。
2. ヘッダーを使用する前に出力を行うことはできません。
3.ヘッダー以降の PHP コードも実行されます。たとえば、ブラウザを php.cn

<?php
 //重定向浏览器
header("Location: https://www.php.cn");
 //确保重定向后,后续代码不会被执行
exit;
?>

1 にリダイレクトします。PHP ジャンプ コードを 1 文で表現します:

<?php
$url = $_GET[&#39;url&#39;];
Header("Location:$url");
?>

2. PHP ジャンプ コード if 判定:

次のようにコードをコピーします:

if($_COOKIE["u_type"]){ 
header(&#39;location:register.php&#39;);
} else{ 
setcookie(&#39;u_type&#39;,&#39;1&#39;,&#39;86400*360&#39;);//设置cookie长期有效 
header(&#39;location:zc.html&#39;);

Note: zc.php として保存します。ユーザーが zc.php にアクセスしたときに、Cookie が存在するかどうかを確認します。存在する場合は (www.php . cn) は register.php にジャンプします。存在しない場合は、Cookie を作成して zc.html にジャンプします。

URL リダイレクト関数

function redirect($url, $time=0, $msg=”) {
 //多行URL地址支持
$url = str_replace(array(“n”, “r”), ”, $url);
 if ( empty($msg) )
 $msg = “系统将在{$time}秒之后自动跳转到{$url}!”;
if (!headers_sent()) {
 // redirect
 if (0 === $time) {
 header(‘Location: ‘ . $url);
 } else {
 header(“refresh:{$time};url={$url}”);
echo($msg);
 }
 exit();
 } else {
 $str = “<meta http-equiv=&#39;Refresh&#39; content=&#39;{$time};URL={$url}&#39;>”;
if ($time != 0)
 $str .= $msg;
 exit($str);
 }
 }

上記では 404 ステータスを返すことはできません。ページがジャンプした後に 404 ステータス コードが返される場合は、次の手順を実行できます。

function getref()
 {
 $url = @$_SERVER[&#39;HTTP_REFERER&#39;];
 if( !empty( $url ) )
 {
 if( !strstr($url ,&#39;jb51.net&#39; ) && !strstr($url,&#39;jb51.net&#39;))
 {
 @header("http/1.1 404 not found");
 @header("status: 404 not found");
 include("404.html");//跳转到某一个页面,推荐使用这种方法
 exit();
 }
 }
 else
 {
 @header("http/1.1 404 not found");
 @header("status: 404 not found");
 include("404.html");//跳转到某一个页面,推荐使用这种方法
 exit();
 }
 }

301 を実行する場合も、ほぼ同じです

<?php
 $the_host = $_SERVER[&#39;HTTP_HOST&#39;];
 $request_uri = isset($_SERVER[&#39;REQUEST_URI&#39;]) ? $_SERVER[&#39;REQUEST_URI&#39;] : &#39;&#39;;
 if($the_host !== &#39;www.jb51.net&#39;)
 {
  //echo $_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;PHP_SELF&#39;];
  header(&#39;HTTP/1.1 301 Moved Permanently&#39;);
  header(&#39;Location: https://www.jb51.net&#39; . $_SERVER[&#39;PHP_SELF&#39;] . $request_uri);
 }
 ?>

関連する推奨事項: php中文网

以上がPHPでヘッダージャンプを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。