我有以下工作正常:
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);
但它们似乎无法正常工作。底部的一个在我的编辑器中给出了语法错误。而倒数第二个例子根本没有重定向。
答案 0 :(得分:7)
concatenating strings时,您无需添加明确的结束 "
:
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"
答案 1 :(得分:1)
您还可以使用解析字符串的优势来代替:
header("Location: /{$_SESSION['initiating_url']}", true, 300);
如果你需要来加入字符串,你应该使用单引号,因为它们更快(它们没有被解析或者其他东西),如下所示:$foo='World'; echo 'Hello\n'.$foo;
。如果您不希望将\ n转换为$foo='World'; echo "Hello\n$foo";
将解析它的转义字符,这也很好。 (完全偏离主题,但我猜有帮助)