我在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并且已经(我甚至重新启动了服务器)所以不是这样.
我在这个poing假设它是一个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.在没有包含的新文件中按预期工作.
解决方法:
谢谢你的回复.你是对的,因为它不是任何配置问题.问题必须是我的一个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.在没有包含的新文件中按预期工作.