1

我有以下工作正常:

header("Location: /index.php", true, 300);

但我希望文件名是动态的,即

header("Location: /" . $_SESSION['initiating_url']);

这工作正常,但是,我仍然需要, true, 300最后,我似乎无法弄清楚:

header("Location: /" . $_SESSION['initiating_url'] . "\"", true, 300);
header("Location: /" . $_SESSION['initiating_url'] . """, true, 300);

但它们似乎无法正常工作。底部的一个在我的编辑器中给了我语法错误。倒数第二个示例根本不重定向。

4

2 回答 2

7

连接字符串时不需要添加显式关闭"

header("Location: /" . $_SESSION['initiating_url'], true, 300);

为了清楚起见:

$path = 'home';
echo "Location: /" . $path;          // Location: /home
echo "Location: /home";              // Location: /home
echo "Location: /" . $path . "\"";   // Location: /home"
echo "\"Location: /" . $path . "\""; // "Location: /home"
于 2013-08-28T13:43:36.353 回答
1

您还可以利用解析字符串的优势来执行此操作:

header("Location: /{$_SESSION['initiating_url']}", true, 300);

如果您需要连接字符串,则应该使用单引号,因为它们会更快一些(它们不会被解析或其他东西),如下所示:$foo='World'; echo 'Hello\n'.$foo;. 如果您不希望将 \n 转换为$foo='World'; echo "Hello\n$foo";解析它的转义字符,那也很好。(我猜完全偏离主题但很有帮助)

于 2013-08-28T13:47:47.663 回答