包含在输出后发生时,我可以在包含的脚本中调用 setcookie 吗?
Can I call setcookie in a included script when the include occurs after output?
我知道在页面上放置任何输出之前必须调用 setcookie(),但我不知道当包含包含时会发生什么。假设我有两个名为 A.php 和 B.php 的文件,如下所示:
A.php:
<?php
setcookie("key", "value", time() + (60*60*24));
echo "Hello World";
?>
B.php
<html>
<body>
<?php include("A.php"); ?>
</body>
</html>
如果我在网络浏览器中打开 B.php,setcookie 会在 html 和 body 打开标签后调用吗?
是的。如果您在 B.php
中包含 A.php
,setcookie
将 无效 。
避免输出任何内容的常用方法是启动输出缓冲区。在 B.php
的顶部放置:
<?php ob_start();?>
然后在最后放:
<?php echo ob_get_clean(); // flush the buffer ?>
我知道在页面上放置任何输出之前必须调用 setcookie(),但我不知道当包含包含时会发生什么。假设我有两个名为 A.php 和 B.php 的文件,如下所示:
A.php:
<?php
setcookie("key", "value", time() + (60*60*24));
echo "Hello World";
?>
B.php
<html>
<body>
<?php include("A.php"); ?>
</body>
</html>
如果我在网络浏览器中打开 B.php,setcookie 会在 html 和 body 打开标签后调用吗?
是的。如果您在 B.php
中包含 A.php
,setcookie
将 无效 。
避免输出任何内容的常用方法是启动输出缓冲区。在 B.php
的顶部放置:
<?php ob_start();?>
然后在最后放:
<?php echo ob_get_clean(); // flush the buffer ?>