我在Windows2000服务器上安装了XAMPP。除了PHP的fopen函数之外,所有的功能都运行得很好。我既不能创建也不能用它打开文件。奇怪的是,我可以包含/require/ file _get_content/其他与文件相关的函数;而且,fopen不会生成任何错误,也不会注意到它只是返回NULL。
我已经将文件和所有封闭文件夹的完全控制权授予每个人,但我仍然得到NULL而不是文件指针。
我已经在php 5.2.9,5.2.13和5.3.1上尝试过了,也有同样的效果。我已经检查了php.ini文件,寻找有什么东西破坏了它;我甚至尝试从运行fopen的linux机器中删除和使用基本的ini文件,但仍然一无所获。
我知道我必须在修改我的ini之后重启apache,而且我已经重启了(我甚至重启了服务器),所以不是这样的。
我在这里假设这是一个apache配置问题,明天我将通过php-cli运行一个测试来确认。
我真的不想再为这件事伤脑筋了,能不能找个apache/php向导来帮我?
感谢您的回复。您是对的,这不是任何配置问题。问题一定是我的某个dll或我的某个包含文件出了问题。我只是尝试了相同的代码,这些代码在没有任何include的新文件中不起作用。我禁用了我的定制库,它起作用了。
根据记录,我正在做的事情是不起作用的:
$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
}
}我所包含的东西一定是以某种方式被打破了。在没有包含的新文件中按预期工作。
发布于 2010-03-12 01:12:18
感谢您的回复。您是对的,因为这不是任何配置问题。问题一定是我的某个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
}
}我所包含的东西一定是以某种方式被打破了。在没有包含的新文件中按预期工作。
发布于 2010-03-12 00:49:36
所以我们假设你使用的是这种代码:
$fp = fopen( "my_file.txt", "r" );
$contents = fread($fp, filesize( "my_file.txt" ) );
fclose($fp);我是否应该假设filesize()函数返回null?还可以尝试使用stat($filename)函数,看看是否得到了一个相对完整的数组。
让我知道你的结果。
https://stackoverflow.com/questions/2422507
复制相似问题