2012-06-16 55 views
1

好的,我有GOT在这里完全缺乏一些基本的东西。 我有一个非常简单的使用PHP的fopen函数,但由于某种原因,它不会打开文件,无论我做什么。PHP的fopen最终失败

关于这个奇怪的部分是,我在同一个脚本中的另一个函数中使用fopen,它的工作完美。我在两个函数中都使用了fclose。所以,我知道这不是一个流氓文件处理的问题。

我已经确认了文件的路径和目标文件的存在。

我以root身份在命令行运行脚本,所以我知道这不是apache原因。由于我以root身份运行脚本,我相当确信权限不是问题。

那么,我究竟在这里错过了什么?

function get_file_list() { 
    $file = '/home/site/tmp/return_files_list.txt'; 
    $fp = fopen($file, 'r') or die("Could not open file: /home/site/tmp/return_files_list.txt for reading.\n"); 
    $files_list = array(); 
    while($line = fgets($fp)) { 
    $files_list[] = $line; 
    } 
    fclose($fp); 
    return $files_list; 
} 

function num_records_in_file($filename) { 
    $fp = fopen($filename, 'r'); # or die("Could not open file: $filename\n"); 
    $counter = 0; 

    if ($fp) { 
    while (!feof($fp)) { 
     $line = fgets($fp); 
     $arr = explode('|', $line); 

     if ((($arr[0] != 'HDR' && $arr[0] != 'TRL') && $arr[0] != '')) { 
     ++$counter; 
     continue; 
     } 
    } 
    } 

    fclose($fp); 
    return $counter; 
} 

根据要求,这里有两个功能。第二个函数传递给文件的绝对路径。这是我用来确认文件在那里,路径是正确的。

+2

一些代码和更多的上下文吗? –

+0

最新的错误,你有没有设置路径? –

+0

确保文件的所有子目录都具有+ x权限集。 – nickb

回答

2

哇!那么,我明白了。 突发奇想,我决定尝试修剪文件名。显然,它在文件名末尾带有一些空格或其他东西。所以,当它试图打开文件,它不能由于寻找$文件名+

每天学习新的东西,我猜。