无法回显用fread读取的文件


Unable to echo a file read with fread

我试图读取一个小的html文件,但当我回显结果时,我什么也看不到。读取/显示代码为:

    $headerName = "header.html";
    $header = fread($header_fp,filesize($headerName));
    $header_filesize = filesize($headerName);
    echo "<pre>";
    echo ("<br />header: file size = $header_filesize data = $header");
    echo "</pre>";

$header_filsize打印为110,这是正确的。

我正在读取的header.html文件是:

<!doctype html> 
<!-- HTML5  -->
<html>
<head>
<meta charset="utf-8">
<title>Webplaces</title>
</head>
<body>

以上就是我所期待的回声。

有人知道为什么回声没有显示文件内容吗?

感谢

是否转义html字符?如果您只是回显内容,它将作为普通html进行处理,并且您无法在输出中看到它。

试试这个:

echo htmlspecialchars($header, ENT_QUOTES, 'UTF-8');

您尝试过查看源代码吗?HTML在浏览器中呈现。

也就是说,你为什么要这么做?只需使用readfile或(如果您希望运行PHP)include

fread()不采用文件名,而采用文件系统指针!

你必须先使用fopen()

$header_handle = fopen($header_name, "r");
$header = fread($header_handle, filesize($header_name);
// ...

你的错误是忘记了fopen()文件。

别忘了fclose($header_handle);