我正在学习PHP并且一直在寻找这个。我想要实现的是这样的:
if (true/false) {
go to this url;
}
每次我搜索php重定向或php链接等术语时,99%的时间我会收到“标题”。我读到头重定向可以实现这一点,但没有代码可以在它之前,它必须首先在页面上,否则它不会工作。
如果是这样,那么我该如何实现呢?
答案 0 :(得分:8)
我读到头重定向可以实现这一点,但没有代码可以在它之前。它必须首先在页面上,否则它将无法工作。
那是错的。在此之前必须没有输出。因此,您必须确保之前没有echo
,print
,?>something<?php
(或其他)任何事情。
if (true) {
header('Location: ' . $url, false, 302);
exit; // Ensures, that there is no code _after_ the redirect executed
}
您可以准备好所有内容about it in the official manual。特别是:
请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include()或require(),函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。
答案 1 :(得分:5)
echo '<script type="text/javascript"> document.location = "http://yoururl.com";</script>'
这将在脚本的这部分执行时执行。
答案 2 :(得分:0)
如果您需要在重定向之前输出一些输出,可以使用此功能:
header("refresh: $time_in_seconds; url=$your_url);
您仍然必须在实际发送输出之前调用此方法。发送标题,然后发送您的输出 - 页面将在指定的时间内“重定向”。
免责声明:我必须承认,我不确定这是什么含义,也无法找到它的文档,所以我不一定会推荐它 - 但我可以验证它有效。