1. 위치와 ":" 사이에는 공백이 있으면 안 됩니다. 그렇지 않으면 오류가 발생합니다.
2. 헤더를 사용하기 전에는 출력이 불가능합니다.
3. 헤더 뒤의 PHP 코드도 실행됩니다.
다음은 asp의 response.redirect 리디렉션과 비교한 것입니다.
예 1:
response.redirect "../test.asp"
header("location:../test. php ");
둘 사이의 차이점:
asp의 리디렉션 기능은 헤더 파일을 클라이언트에 보낸 후에 작동할 수 있습니다.
예:
머리><
<%response.redirect "../test.asp"%>>
header("location:../test.php");
?>
이 작업은 다음과 같이만 수행할 수 있습니다.
< ?
header("위치:../test.php");
?>
< ;html>... body>
즉, 헤더 함수는 이전에는 클라이언트에 어떤 데이터도 보낼 수 없었습니다.
예 2:
head>
<%
response.redirect "../a.asp"
response.redirect "../b.asp"
%> ;/body>
a.asp 파일을 리디렉션하는 것입니다.
php는 어떻습니까?
< ");
header("위치:../b.php");
?>
< head>
b.php를 리디렉션하는 것으로 나타났습니다.
asp에서 리디렉션을 실행한 후에는 후속 코드가 실행되지 않습니다.
PHP는 계속 실행됩니다.
이런 점에서 PHP의 헤더 리디렉션은 ASP의 리디렉션만큼 좋지 않습니다. 때로는 리디렉션 후 다음 코드를 실행할 수 없습니다.
일반적으로
if(. ..)
header("...");
else
{
...
}
하지만 간단히 다음 방법을 사용할 수 있습니다.
if( ...)
{ header("...");exit();}
또한 유니코드를 사용하는 경우(UTF-8을 인코딩할 때도 문제가 있음) 캐시 설정이 필요하다는 점에 유의하세요.
<[email=%@]%@LANGUAGE="VBSCRIPT[/email]" CODEPAGE="936"%>
< ;%if Request.ServerVariables("SERVER_NAME")= "s.jb51.net" then
response.redirect "news/index.htm"
else%>
<script> url = location.href; <br>if(url.indexOf('http://www.php.cn/')!=-1)location.href=' /index/index.htm' <br>if (url.indexOf('http://www.kanshule.com/')!=-1)location.href='/index1/index.htm' <br>if(url.indexOf('http:// www.shouji17.com/')!=-1)location.href='/cn/index.asp'; <br>if(url.indexOf('http: //www.baidu.com/')!= -1)location.href='/cn/index.asp'; <br></script>
페이지 이동을 위해 PHP 헤더를 사용할 때 주의해야 할 몇 가지 문제를 요약했습니다. 관련 기사를 보려면 PHP 중국어 웹사이트에 주의하세요!