【发布时间】:2015-12-01 21:59:07
【问题描述】:
我在 Drupal 中自定义一个模块,在该模块中我想在 if 语句之后立即刷新当前页面,如何在 PHP 中刷新当前页面
【问题讨论】:
-
已回答here。确保您保护自己免受无限重定向循环。
我在 Drupal 中自定义一个模块,在该模块中我想在 if 语句之后立即刷新当前页面,如何在 PHP 中刷新当前页面
【问题讨论】:
如果你已经输出了一些东西,你就不能在 PHP 中(因为所有的headers 必须在输出开始之前发送)。
如果还没有输出:
header('Location:: current_page_url');
or
header("Refresh:0");
更好的方法是通过带有window 对象的Javascript 来实现
$window.location.reload();
【讨论】:
<script src=""> 创建一个 .js 文件来获取它。如果一个人不了解 JS,这并不是可以在评论中轻松解释的东西。我建议在重新审视您的问题后立即使用 PHP,如果您没有任何输出(因为通常在 PHP 执行完成后加载 JS)。
Php 提供以下函数来调用页面刷新
header("Refresh:0");
如果您需要页面重定向,您可以使用以下内容。
header("Refresh:0; url=redirect_page.php");
【讨论】:
只是 header("刷新:0");
【讨论】:
为什么对原始问题投了反对票?在某些情况下,这是一件合法的事情。
无论如何...我很惊讶没有人提到“Drupal Way”:
drupal_goto(current_path());
这个确切的场景在modules/simpletest/tests/common_test.module函数common_test_init()中进行了测试:
/**
* Implements hook_init().
*/
function common_test_init() {
if (variable_get('common_test_redirect_current_path', FALSE)) {
drupal_goto(current_path());
}
if (variable_get('common_test_link_to_current_path', FALSE)) {
drupal_set_message(l('link which should point to the current path', current_path()));
}
}
【讨论】: