472,373 Members | 1,580 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,373 software developers and data experts.

fclose(): 15 is not a valid stream resource

I'm not sure what this error means and was wondering if anyone knew what the problem is and how it can be fixed. This error comes out multiple times but each time the number is different.
Expand|Select|Wrap|Line Numbers
  1.  
  2. Warning:  fclose(): 15 is not a valid stream resource in /mnt/raid/www/intra/admin/ts2/test2.php on line 174
  3.  
  4. Warning:  fclose(): 20 is not a valid stream resource in /mnt/raid/www/intra/admin/ts2/test2.php on line 174
  5.  
  6. Warning:  fclose(): 25 is not a valid stream resource in /mnt/raid/www/intra/admin/ts2/test2.php on line 174
  7.  
  8. Warning:  fclose(): 25 is not a valid stream resource in /mnt/raid/www/intra/admin/ts2/test2.php on line 174
  9.  
What do the numbers (15,20,25) mean? Thanks in advance.
Jun 26 '09 #1
7 16506
So after tinkering around for a while, I learned that these numbers correspond to the resource id# which I'm also not sure what it is. When I printed out the file name, it says resource id # then the actual file name. And since in the loop it opens 15 different files, the resource id becomes 15. How do I get it to close the file and no the resource id.
Jun 26 '09 #2
Markus
6,050 Expert 4TB
Maybe if we could see the code causing the error, our responses would be slightly more informed.
Jun 26 '09 #3
sorry=P..it's just that actual code is really long and I'm not even sure which section to post. I tried cutting out the unnecessary lines, but here it is. Thanks for your help!
Expand|Select|Wrap|Line Numbers
  1.  
  2.  
  3.     if ($handle = opendir('/projects/ts/')) {
  4.  
  5.    while (false !== ($folder = readdir($handle)))
  6.       {
  7.           if ($folder != "." && $folder != "..")
  8.         {    
  9.             if(is_numeric($folder)){
  10.                 //writing all data into array
  11.         if($folder<=$end && $folder>=$beginning){        
  12.         $handle2="/projects/ts/".$folder;
  13.         print_r($handle2);
  14.         $folderpath=opendir($handle2);
  15.         print_r($folderpath);
  16.         while(false !== ($file = readdir($folderpath))){
  17.             $tmp=explode('.',$file);
  18.             if($tmp[0]==$folder){
  19.                 print_r($file);
  20.                 $filepath="/projects/ts/".$folder."/".$file;
  21.                 $timesheet=fopen("$filepath", "r");
  22.                 while(!feof($timesheet)){
  23.                 $lines=fgets($timesheet);
  24.                 if($lines{0}=='M'){
  25.                 $user=explode('=',$lines);
  26.                 $user=$user[1];
  27.                 }
  28.                 elseif($lines{0}==null || $lines{0}=='['){
  29.                 }
  30.                 else{
  31.                     //$parts2=explode(' % ',$invalidcheck);
  32.                     $parts3=explode('=', $lines);
  33.                     $parts4=explode('.', $parts3[0]);
  34.                     $project=$parts4[0];
  35.                     $project=trim($parts4[0]);
  36.                     $phase=$parts4[1];
  37.                     $hours=$parts3[1];
  38.                     $hours=substr($parts3[1],0,4);            
  39.                 }    
  40.                 if($project==$type){    
  41.                 $classpath="/projects/".$project."/ts_classes";
  42.                 $classfile=fopen("$classpath","r");
  43.                 while(!feof($classfile)){
  44.                 $classes=fgets($classfile);
  45.                 $classes=preg_replace('/\s\s+/',' ', $classes);
  46.                 $tmp=explode(' ',$classes);
  47.                 if($tmp[1]==$user){
  48.                     if($tmp[3]{1}=='-'){
  49.                         $time=substr($tmp[3],2,6);
  50.                         if($time<=$lastdate && $time>=$firstdate){
  51.                         $class=$tmp[2];
  52.                         $checker=1;
  53.                         }
  54.                         }
  55.                     elseif($tmp[3]{8}=='-'){
  56.                         $time=substr($tmp[3],1,6);
  57.                         if($time<=$lastdate && $time>=$firsdate){
  58.                             if($checker==0){
  59.                             $class=$tmp[2];
  60.                             }
  61.                             else{
  62.                             $class2=$tmp[2];
  63.                             }
  64.                         }
  65.                         }
  66.                     else{
  67.                     $class=$tmp[2];
  68.                     print_r($class);
  69.                     }
  70.                 }
  71.                 else{
  72.                 }
  73.                 }
  74.                 fclose($classpath);
  75.  
  76.                     }        
  77.             }            
  78.         }
  79.         fclose($timesheet);
  80.         }
  81.         closedir($folderpath);
  82.             }
  83.           }
  84.        }
  85.         }
  86.  closedir($handle);
  87.  
  88.  
  89.  
Jun 26 '09 #4
Markus
6,050 Expert 4TB
Line 74 of the code you posted above should be fclose($classfile); not $classpath. I cannot spot the other errors. Can you show which lines (in the code you posted) are the lines that your errors point to?

Thanks.
Jun 26 '09 #5
The error is showing up for fclose($timesheet) in line 79. Thanks=)
Jun 26 '09 #6
Markus
6,050 Expert 4TB
Argh. Format your code!

Anyway, it looks like you are doing $timesheet=fopen("$filepath", "r"); inside an if conditional, and then when this if conditional ends, you attempt to fclose() the resource. But, what happens if the if is skipped? The resource is not created and fclose() is trying to close something that doesn't exist.
Jun 26 '09 #7
sorry i forgot to reply but you're correct, that was the problem.Thanks=) I found that I did this for a lot of the fclose so its a good thing you caught it for me.
Jun 30 '09 #8

Sign in to post your reply or Sign up for a free account.

Similar topics

6
by: Jeff | last post by:
If this in not an ANSI-C question, then just flame me and I'll be on my way.... I am using fdopen to associate a FILE with a socket descriptor. (Because I've mentioned a socket descriptor I...
19
by: lihua | last post by:
Hi, Group! I got one question here: We all know that fclose() must be called after file operations to avoid unexpected errors.But there are really cases when you forget to do that!Just like...
0
by: Daniel Groh | last post by:
Yesterday I asked about this error (Stream is not a valid resource file.) and the friend here asked if the resx file was in a correct format. I think so, because I just added 2 values in the name...
1
by: coz | last post by:
Someone please help! I cannot for the life of me get a web resource in asp.net 2.0 to return any content. I know I have correctly embedded my resources (because I can manually get the resources...
17
by: kathy | last post by:
if fopen failed, does it necessary to call fclose? I see an example like this: .... stream = fopen(...); if(stream == NULL) { .... } else
20
by: David Mathog | last post by:
A program of mine writes to a tape unit. Output can be either through stdout or through a file opened with fopen(). When all the data is transferred to tape the program needs to close the output...
2
by: yogitha | last post by:
For the below code i am getting an error like : --------------------------------------------------------------- Warning: fread(): supplied argument is not a valid stream resource in...
53
by: Bartc | last post by:
This short program: #include <stdio.h> #include <stdlib.h> int main(void) { int status; status=fclose(0);
16
by: Bill Cunningham | last post by:
Is it really necessary to check the return type (int) or fclose ? fopen I can understand but what about using fflsuh(fp); /* fopen's pointer */ fclose(fp); Would that take care of any...
2
by: Kemmylinns12 | last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
0
by: antdb | last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine In the overall architecture, a new "hyper-convergence" concept was proposed, which integrated multiple engines and...
1
by: Matthew3360 | last post by:
Hi, I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web server and have made sure to enable curl. I get a...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
2
by: Ricardo de Mila | last post by:
Dear people, good afternoon... I have a form in msAccess with lots of controls and a specific routine must be triggered if the mouse_down event happens in any control. Than I need to discover what...
1
by: ezappsrUS | last post by:
Hi, I wonder if someone knows where I am going wrong below. I have a continuous form and two labels where only one would be visible depending on the checkbox being checked or not. Below is the...
0
by: jack2019x | last post by:
hello, Is there code or static lib for hook swapchain present? I wanna hook dxgi swapchain present for dx11 and dx9.
0
DizelArs
by: DizelArs | last post by:
Hi all) Faced with a problem, element.click() event doesn't work in Safari browser. Tried various tricks like emulating touch event through a function: let clickEvent = new Event('click', {...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.