2012-06-16 20 views
1

Хорошо, у меня есть что-то совершенно рудиментарное. У меня очень простое использование функции fopen PHP, но по какой-то причине он не откроет файл независимо от того, что я делаю.PHP-fopen терпит неудачу

Нечетная часть об этом заключается в том, что я использую fopen в другой функции в том же скрипте, и он отлично работает. Я использую fclose в обеих функциях. Итак, я знаю, что дело не в дескрипторе файла-мошенника.

Я также подтвердил путь к файлу и наличие целевого файла.

Я запускаю скрипт в командной строке как пользователь root, поэтому я знаю, что это не апач. И поскольку я запускаю скрипт как 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

Ничего себе! Ну, я понял это. По прихоти, я решил попробовать обрезать имя файла. По-видимому, в конце файла было какое-то пробел или что-то в этом роде. Итак, когда он пытался открыть файл, он не мог из-за поиска $ filename +

Узнай что-то новое каждый день, я думаю.

Смежные вопросы