2010-03-11 37 views
4

我在Windows 2000服务器上安装了XAMPP。除了PHP fopen函数,一切都很好。我不能用它创建或打开文件。奇怪的是我可以包含/ require/file_get_contents /其他文件相关的功能;也fopen不会产生任何错误或通知它只是返回NULL。PHP fopen对包含文件和get_file_contents的文件返回null

我已经尽最大努力授予文件和所有封闭文件夹给所有人的完全控制,但我仍然得到NULL而不是文件指针。

我已经试过这在PHP 5.2.9,5.2.13和5.3.1具有相同的效果。我已经通过php.ini文件寻找破坏它的东西;我甚至尝试删除和使用基本的ini文件从fopen工作,仍然没有什么东西的Linux机器。

我知道我必须重新启动apache后,改变我的ini和所有这一切,并已(我甚至重新启动服务器),所以没有它。

我在这个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。在没有包含的新文件中按预期工作。

+0

它不能是apache/php的配置,因为file_get_contents使用与fopen一样的例程。 提供一个复制代码,而不是罗嗦的解释将是非常好的你 – 2010-03-11 04:42:46

+0

是的,一些示例代码会很好。你如何测试NULL?你如何引用fopen文件并包含/ etc? – 2010-03-11 05:20:31

+0

发表一个例子。我期望它是一个文件路径字符串问题:) – naugtur 2010-03-11 09:52:07

回答

0

因此,我们假设你正在使用这种代码:

$fp = fopen("my_file.txt", "r"); 
$contents = fread($fp, filesize("my_file.txt")); 
fclose($fp); 

我是假设文件大小()函数返回空值?也可以尝试stat($ filename)函数来查看你是否得到了一个相对完整的数组。

让我知道你的结果。

+0

你应该发布这个评论,而不是一个答案。 – 2012-09-04 09:58:29

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。在没有包含的新文件中按预期工作。

+0

您应该更新问题,不要将更新发布为答案。 – 2010-03-12 16:05:53

+0

你应该发布这个评论,而不是一个答案。 – 2012-09-04 09:59:26