user2761431
user2761431

Reputation: 975

PHP : failed to open stream error when reading file name from file

I have a file input.txt that contains file names that I need to open and read data. I have written the following php code and I get the failed to open stream: No such file or directory when it tries to open with variable $files, i.e., the second fopen is failing.

$handle = fopen("/home/user/input.txt", "r");
if($handle) {
while(($files = fgets($handle)) !== false) {
    print $files;
    $filename = fopen($files,"r");
    print $filename;
}
}

input.txt content:

/home/user/file_1
/home/user/file_2
/home/user/file_3
/home/user/file_4

file_1,file_2,file_3 and file_4 are in /home/user/ I am not sure what I am doing wrong.

Upvotes: 1

Views: 946

Answers (1)

Uri Goren
Uri Goren

Reputation: 13692

My guess is that the file lines contains whitespaces (e.g. \r), to remove them we'll use trim()

function open_files_from_file_list()
{
 $handle = fopen("/home/user/input.txt", "r");
 if(!$handle)
   return;

 while(($line = fgets($handle)) !== false)
 {
    $line=trim($line);
    print $line;
    if (!file_exists($line))
    {
       print ' does not exists';
       continue;
    }
    $filename = fopen($line,"r");
    print $filename;
 }
}

Upvotes: 2

Related Questions