2012-06-16 58 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

哇!那麼,我明白了。 突發奇想,我決定嘗試修剪文件名。顯然,它在文件名末尾帶有一些空格或其他東西。所以,當它試圖打開文件,它不能由於尋找$文件名+

每天學習新的東西,我猜。