【问题标题】:how to solve the error with header('Content-Type: image/jpeg') [duplicate]如何使用 header('Content-Type: image/jpeg') 解决错误 [重复]
【发布时间】:2023-03-10 22:05:02
【问题描述】:

我在当前的一个项目中遇到了问题。只是分享是否有人对此类问题有经验。当我尝试使用以下脚本时:

header('Content-Type: image/jpeg');

以下错误显示:

警告:无法修改标头信息 - 标头已由第 89 行 /location/controller/Captcha.php 中的(输出开始于 /location/test.php:1)发送

我用过ob_clean();在 header('Content-Type: image/jpeg'); 函数之前清理缓冲区。但没有工作。 我也在检查 php 文件中的任何输出或换行符,但什么也没找到。

谁能给我一个解决方案?

【问题讨论】:

标签: php character-encoding header file-encodings


【解决方案1】:

基本上,当 php 标签中存在任何空格或换行符或在 header 函数之前打印的任何内容时,就会发生这种类型的问题。但在我的项目问题中,除了 test.php 文件之外,我的所有 php 文件都使用 ANSI 编码 保存。 test.php 文件是用 utf-8 编码保存的。

当 captcha.php 文件尝试访问自动打印一些特殊字符的 test.php 时(我不知道为什么)。

当我将 test.php 的编码转换为 ANSI 时,我的项目问题解决了。

感谢 Fred 的回复。

【讨论】:

  • 不客气,Shah。然后我的答案是正确的。您可以通过单击箭头下的复选标记来接受我的回答吗?这会将您的问题标记为“已回答”。干杯。
【解决方案2】:

如果没有看到完整的代码,很可能您在 <?php 标记、HTML 或其他类型的“输出”之外或上方有空格,甚至可能是 byte order mark

<?php

echo "Correct";
// or vvv, but not with echo
// header("Location: http://www.example.com/");

?>

被视为“输出”的示例(在标题之前):

(space)
(space) <?php

echo "Incorrect";
header("Location: http://www.example.com/");

?>

<div align="center">Text</div> <!-- HTML -->
<!-- comment tags also considered as output -->
<?php

echo "Incorrect";
header("Location: http://www.example.com/");

?>

(byte order mark) // aka BOM which is invisible but still present
<?php

echo "Incorrect";
header("Location: http://www.example.com/");

?>

有关header() 函数的更多信息,请访问 PHP.net 网站:

【讨论】:

  • 我检查了 php 文件中的任何输出、换行符或空格,但什么也没找到。
  • @ShahAlom 那么你很可能有一个字节顺序标记。许多东西可以被认为是标题之前的输出。您需要找出造成这种情况的原因。可能是一个包含,一个函数。没有看到你的整个代码和结构,很难说。如果您的标题之前没有任何内容(空格,HTML),那么它就是一个字节顺序标记(BOM)。字节顺序标记也被视为输出。
  • @ShahAlom 您需要将文件保存/编码为没有 BOM 的 UTF-8。如果您还没有 Notepad++,请下载它的副本。你可以在这里得到它 => notepad-plus-plus.org
  • @ShahAlom 检查所有您的文件,即使涉及/包含的“一个”文件在打开&lt;?php标签之前有任何输出,就会导致这个问题。另外,如果您的文件中没有空格、制表符、HTML 等,那么它就是BOM,并且您的所有文件都需要编码为 UTF-8 而没有 BOM。
猜你喜欢
  • 2020-09-22
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2014-01-08
  • 2014-03-14
  • 2022-06-30
相关资源
最近更新 更多