如果在session_start之前至少调用过一次,则is_readable()仅返回true

时间:2015-07-06 16:26:42

标签: php

我的一台PHP服务器上有些奇怪的东西。其他服务器显示不同的行为但我不认为这是由环境设置引起的。

我开始相信这是一个错误。有没有人听说过这个?

is_readable()只会在您开始会话前至少调用一次 true

如果您首先开始会话,则所有is_readable()次来电都会返回 false 。尽管如此,您仍然可以使用readfile()来阅读该文件。

<?php
// do session_start() to here and you will get BadBad

error_reporting(E_ALL);
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
ob_start();

// or do session_start() here and you will also get BadBad
echo is_readable("foo.bar") ? "Good" : "Bad";
// But do session_start() here and you get GoodGood
echo is_readable("foo.bar") ? "Good" : "Bad";
// or even do it here and you will still get GoodGood

echo @++$_SESSION['counter'];   // incrementing number always follow GoodGood or BadBad
readfile("foo.bar");            // the contents also always follow GoodGood or BadBad
?>

总是显示递增数字,因此会话正常工作。

此外,文件内容始终显示,因此文件可读。

我正在使用IIS 7.5在Windows Server 2012 64位上运行32位PHP版本5.3.26。

它可能是什么?

0 个答案:

没有答案