-1

globals.php网站上的每个文件中都包含一个文件。我想在这个文件中包含一个CSS文件globals.css.

问题是,如果我添加 CSSglobals.php然后将其包含在所有文件中,我会收到一些错误,例如:

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent (output started at /...)
in /... on line 4

或使用时

header('Location: ....');

ob_start有没有比在同一个文件的顶部globals.phpob_end_flush底部使用更好更合适的解决方案,或者这种方法是正确的操作方式?

全局变量.php

<?php
ob_start();

//some costants and functions
?>

<head>
    <link href="/css/globals.css" rel="stylesheet" type="text/css">
</head>

<?php
    ob_end_flush();
?>
4

2 回答 2

2

你在全局脚本结束时刷新缓冲区,关闭缓冲,所以如果你有类似的东西

header('...'); // this will work, no output yet
include('globals.php'); // flushes buffers, stops buffering, starts output
header('...'); // fails with "headers already send"

如果您在包含全局文件之后进行任何 header() 调用,则全局文件应该刷新缓冲区。

于 2013-07-29T15:26:46.503 回答
0

如果您正在使用会话,请确保session_start在执行其他任何操作之前先致电。错误消息表示您在session_start完成某些输出或其他操作后尝试调用。

于 2013-07-29T15:25:20.307 回答