<?php
echo get_current_user();
$file_path = "templates\index.tpl";
$test = getcwd() . "\\". $file_path;
echo $test."\r\n";
if(is_readable($test)) {
echo ("Readable!\r\n");
} else {
echo ("Not readable!\r\n");
}
odbc_connect("kontaktdb", null, null);
?>
返回“可读!”
<?php
echo get_current_user();
$file_path = "templates\index.tpl";
$test = getcwd() . "\\". $file_path;
echo $test."\r\n";
odbc_connect("kontaktdb", null, null);
if(is_readable($test)) {
echo ("Readable!\r\n");
} else {
echo ("Not readable!\r\n");
}
?>
返回“不可读!”
因此,当在建立ODBC连接后调用is_readable时,它会失败-其他任何内容都没有更改。
Windows Server 2012 + IIS + PHP 5.4.45
我完全不知道是什么原因。有什么想法吗?
1条答案
按热度按时间vsnjm48y1#
根据您提供的代码,造成这种输出差异的原因是建立ODBC连接可以锁定文件并阻止其他进程访问它。在第一个代码块中,文件没有被锁定,因为ODBC连接尚未建立。但在第二个代码块中,ODBC连接是在检查文件的可读性之前建立的所以在检查文件的可读性之前关闭ODBC连接,这样你就可以正常读取文件了。