readfile()函数输出了内容,但我想把内容保存在变量中。我该怎么办?我尝试过 $content=readfile("file.txt"),但结果不对。
我想实现这样的效果:
$data=readfile("text.txt");
echo htmlentities($data);
那应该能让你了解我希望它如何工作。
这就是 file_get_contents 的用途:
$data = file_get_contents("text.txt");
echo htmlentities($data);
如果你必须使用readfile,你可以使用输出缓冲将内容获取到一个变量中:
ob_start();
readfile("text.txt");
$data = ob_get_clean();
echo htmlentities($data);
但我不明白为什么你在这种情况下要避免使用file_get_contents。
file_get_contents
的部分,以便任何看到这个的人都知道他们应该使用它。另外你需要知道,PHP 中的所有内容默认都被写入一个缓冲区,称为输出缓冲区。像 echo "Test";
这样的语句也会写入该缓冲区。该缓冲区根据不同的设置在数据达到每4KB时被刷新到实际输出,或者直到脚本结束才刷新到实际输出。 - Paulob_start
函数仅仅是捕获输出缓冲区,允许你对其进行额外的处理,如果需要的话,甚至可以阻止它输出。当你想从某个库中调用一个函数,并且该函数使用echo来输出内容,但你不希望它输出任何东西,或者在输出之前需要对其进行处理时,这个函数非常有用。 - Paulreadfile()函数将文件内容写入缓冲区。建议使用file_get_contents()函数代替。
readfile
和file_get_contents
用于执行两种不同的操作,而你想要做的正是file_get_contents
所用的,而不是readfile
所用的。 - Paul