PHP';s fopen正在彻底失败

PHP';s fopen正在彻底失败,php,fopen,Php,Fopen,好吧,我肯定错过了一些基本的东西。 我非常简单地使用了PHP的fopen函数,但由于某些原因,无论我做什么,它都不会打开文件 奇怪的是,我在同一个脚本中的另一个函数中使用了fopen,它工作得非常好。我在两个函数中都使用fclose。所以,我知道这不是一个流氓文件句柄的问题 我已经确认了文件的路径和目标文件的存在 我以root用户身份在命令行中运行脚本,所以我知道这不是apache造成的。由于我是以root用户身份运行脚本的,所以我相当确信权限不是问题所在 那么,我到底错过了什么 functio

好吧,我肯定错过了一些基本的东西。 我非常简单地使用了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;
}

根据要求,这里有两个函数。第二个函数被传递到文件的绝对路径。这就是我用来确认文件是否存在以及路径是否正确的方法。

哇!嗯,我知道了。 一时兴起,我决定尝试修剪文件名。显然,它在文件名的末尾带有一些空格或其他内容。因此,当它试图打开文件时,由于查找$filename+而无法打开


我想每天都要学习一些新的东西。

请编写一些代码和更多的上下文?错误是什么,您是否完全设置了路径?请确保文件的所有子目录都设置了+x权限集。@nickb-Nick,所有目录都是777,但由于我是从命令行以root用户身份运行脚本,这不重要。@samy.vilar-这是奇怪的部分。我也没有收到任何错误。