为什么readfile()在读取php文件时表现得很奇怪,但在处理文本文件时却表现得很好

为什么readfile()在读取php文件时表现得很奇怪,但在处理文本文件时却表现得很好,php,Php,index.php中的代码 <?php echo readfile('hello.php'); ?> 但是,从文本文件中读取数据时不存在这种行为。 在读取php文件时,为什么index.php的输出有三种不同的方式?这是因为屏幕上会有回声。echo readfile是不必要的。回显后,readfile返回它读取的字节数,因此47来自于此 您只需执行以下操作: readfile('hello.php'); 或者你可以使用 echo file_get_contents('hello.

index.php中的代码

<?php
echo readfile('hello.php');
?>
但是,从文本文件中读取数据时不存在这种行为。 在读取php文件时,为什么index.php的输出有三种不同的方式?

这是因为屏幕上会有回声。echo readfile是不必要的。回显后,readfile返回它读取的字节数,因此47来自于此

您只需执行以下操作:

readfile('hello.php');
或者你可以使用

echo file_get_contents('hello.php');
如果你愿意

此外,我建议您在浏览器中检查页面的来源,并查阅浏览器的文档。很可能,您会在那里清楚地看到PHP文件。您的浏览器可能正在尝试将响应呈现为HTML文件。它试图解析这是因为屏幕上会为您回音。echo readfile是不必要的。回显后,readfile返回它读取的字节数,因此47来自于此

您只需执行以下操作:

readfile('hello.php');
或者你可以使用

echo file_get_contents('hello.php');
如果你愿意


此外,我建议您在浏览器中检查页面的来源,并查阅浏览器的文档。很可能,您会在那里清楚地看到PHP文件。您的浏览器可能正在尝试将响应呈现为HTML文件。它试图解析php文件的行为与其他文件相同。如果您转到页面源代码,您将看到php文件的行为与其他文件相同。如果您转到页面源,您将看到屏幕上的回声,然后返回它读取的字节数,这就是47。此外,请检查页面的来源,您的浏览器可能正在尝试读取@RocketHazmat,这是一个值得回答的问题。如果您希望以字符串形式读取文件,则可以使用文件内容,然后返回它读取的字节数,这就是47。另外,检查你的页面来源,你的浏览器可能正在尝试读取@RocketHazmat,值得一个答案。如果你想以字符串形式读取文件,你可以使用文件内容。我知道数字的来源,如果我不在索引文件中使用echo,则不会显示任何内容,甚至连人数都没有bytes@user1906399:是否已检查浏览器中的页面源代码?是的,页面源代码按预期显示,但当我未在hello.php文件的字符串前添加a时,为什么浏览器不显示任何内容?@user1906399:因为它正试图解释@user1906399:Yep,确切地说:-嗯,它们不仅仅用于文本文件,你也可以在二进制文件中使用它们。我知道数字来自何处,如果我不在索引文件中使用echo,就不会显示任何内容,甚至连数字都不会显示bytes@user1906399:是否已检查浏览器中的页面源?是页面源按预期显示,但是当我没有在hello.php文件的字符串前加上a时,为什么浏览器不显示任何内容呢?@user1906399:因为它试图解释@user1906399:是的,没错:-嗯,它们不仅仅用于文本文件,你也可以将它们用于二进制文件。
header('Content-type: text/plain');