好的,我有GOT错过了一些非常简陋的东西。 我非常简单地使用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;
}
根据要求,这是两个功能。第二个函数传递给文件的绝对路径。这就是我用来确认文件在那里并且路径是正确的。
答案 0 :(得分:2)
哇!好吧,我明白了。 一时兴起,我决定尝试修剪文件名。显然,它在文件名的末尾带有一些空格或其他东西。因此,当它试图打开文件时,它无法找到$ filename +
我想每天都在学习新东西。