我在Windows 2000服务器上安装了XAMPP。除了PHP fopen函数之外,一切都很好用。我既不能创建也不能用它打开文件。奇怪的是我可以包含/ require / file_get_contents /其他文件相关的功能; fopen也不会产生任何错误或通知它只返回NULL。
我已经完全控制了文件和所有封闭文件夹给每个人,但我仍然得到NULL而不是文件指针。
我在php 5.2.9,5.2.13和5.3.1上试过这个效果相同。我已经浏览了php.ini文件,寻找破坏它的东西;我甚至尝试删除和使用Linux框中的基本ini文件,其中fopen正在工作但仍然没有。
我知道我必须在更改我的ini之后重新启动apache并且已经(我甚至重新启动了服务器)所以不是这样。
我正处于这种情况下,假设它是一个apache配置问题,明天我将通过php-cli运行测试来确保。
我真的不想再挫伤我的脑袋了,有些apache / php向导可以帮助我吗?
大家好,
感谢您的回复。你是对的是没有任何配置问题。问题必须是我的一个dll或我包含的文件之一。我刚刚尝试了相同的代码,这些代码在没有任何包含的情况下无法在新文件中工作,我禁用了我的自定义库并且它工作正常。
这里的记录是我正在做的不起作用的事情:
$test_file = 'c:\\test.csv';//everybody has full control. is very large.
if(file_exists($test_file) && is_readable($test_file)){
$fp = fopen($test_file, 'r');
echo var_export($fp, true);//outputs NULL. on my linux box this is a number.
if($fp !== false){
//do the work
fread($fp, 10);//throws the error that $fp is not a valid file handle
}
}
我所包含的东西必须以某种方式打破fopen。在没有包含的新文件中按预期工作。
答案 0 :(得分:1)
感谢您的回复。你是对的,因为它不是任何配置问题。问题必须是我的一个dll或我包含的文件之一。我刚刚尝试了相同的代码,这些代码在没有任何包含的情况下无法在新文件中工作,我禁用了我的自定义库并且它工作正常。
这里的记录是我正在做的不起作用的事情:
$test_file = 'c:\\test.csv';//everybody has full control. is very large.
if(file_exists($test_file) && is_readable($test_file)){
$fp = fopen($test_file, 'r');
echo var_export($fp, true);//outputs NULL. on my linux box this is a number.
if($fp !== false){
//do the work
fread($fp, 10);//throws the error that $fp is not a valid file handle
}
}
我所包含的东西必须以某种方式打破fopen。在没有包含的新文件中按预期工作。
答案 1 :(得分:0)
所以我们假设您正在使用这种代码:
$fp = fopen( "my_file.txt", "r" );
$contents = fread($fp, filesize( "my_file.txt" ) );
fclose($fp);
我是否假设filesize()函数返回null?还可以尝试使用stat($ filename)函数来查看是否得到了一个相对完整的数组。
让我知道你的结果。