Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Filesystem Functions : fclose

fclose

Closes an open file pointer (PHP 4, PHP 5)
bool fclose ( resource handle )

The file pointed to by handle is closed.

Parameters

handle

The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen().

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example 624. A simple fclose() example

<?php

$handle
= fopen('somefile.txt', 'r');

fclose($handle);

?>


See Also
fopen()
fsockopen()

Related Examples ( Source code ) » fclose
















Code Examples / Notes » fclose

williamhamby

Trying to understand how 'end foreach' and 'endwhile' differ, I've encountered a problem I can't solve by myself. The following is a fairly easy stock portfolio script. Everything works, except at the end where I want to calculate the average of the gains as represented by $gain[$i].
<?php
$quantity="3";
$stocks=array("iso","grn","bdgr.pk");
$buydates=array("3 jan 2006","1 feb 2006","3 apr 2006");
$prices=array("0.32","0.20","0.95");
$recommends=array("hold","strong buy","buy");
$i=0;
echo"<tr>";
echo "\n<th align='center'>ticker</th>";
echo "\n<th align='center'>buy date</th>";
echo "\n<th align='center'>price $</th>";
echo "\n<th align='center'>recommend</th>";
echo "\n<th align='center'>value $</th>";
echo "\n<th align='center'>change %</th>\n</tr>\n";
foreach($stocks as $stock) {
$fp=fopen("http://","r");
$data=fgetcsv($fp,1000,",");
$values=$data[1];
echo "<tr>\n<td align='center'>".$stock."</td>";
echo "\n<td align='center'>".$buydates[$i]."</td>";
echo "\n<td align='center'>".$prices[$i]."</td>";
echo "\n<td align='center'>".$recommends[$i]."</td>";
echo "\n<td align='center'>".$values."</td>\n<td align='center'>";
echo $gain[$i]=round(((($values-$prices[$i])/$prices[$i])*100),2);
echo "</td>\n</tr>";
fclose ($fp);
$i++;
}
echo "\n<tr>\n<td align='center'>".$gain[$i]."<td>\n</tr>\n";
?>
Help?


mark

It is very important to make sure you clear any incoming packets out of the incoming buffer using fread() or some equivalent.  Although you can call fclose() the socket does not actually shut down until the inbound packets have been cleared.  This can lead to some confusion.

jricher

It is a GOOD_THING to check the return value from fclose(), as some operating systems only flush file output on close, and can, therefore, return an error from fclose(). You can catch severe data-eating errors by doing this.
I learned this the hard way.


james r. steel

In response to kumar mcmillan 'gotcha' note below, we get a different result on a W2K machine:
<?php
$file_pointer = fopen('textfile.dat', 'r');
fclose($file_pointer);
echo '$file_pointer is resource = ' . (is_resource($file_pointer) ? 'true': 'false');
?>
output:
$file_pointer is resource = false


kumar mcmillan

gotcha:
<?php
$file_pointer = fopen('data.dat', 'r');
fclose($file_pointer);
echo '$file_pointer is resource = ' . (is_resource($file_pointer) ? 'true': 'false');
?>
output:
$file_pointer is resource = true


daniel7 dot martinez

Generally, it's always a good idea to close a file when you're done with it. It's very easy for something to go wrong and corrupt a file that hasn't been closed properly. If you're concerned about efficiency, the overhead is negligible.

kit dot lester

fclose() also clears any locks on the file, so if another process was being kept waiting for the lock to be cleared, fclose()ing will allow the other process to continue.
[Another "just-in-case" reason to habitually fclose() all files as soon as practical!]


sineld

Do not forget, if you are going to read the contents of the file which you have already written via fwrite() or else you have to close the file first.

Change Language


Follow Navioo On Twitter
basename
chgrp
chmod
chown
clearstatcache
copy
delete
dirname
disk_free_space
disk_total_space
diskfreespace
fclose
feof
fflush
fgetc
fgetcsv
fgets
fgetss
file_exists
file_get_contents
file_put_contents
file
fileatime
filectime
filegroup
fileinode
filemtime
fileowner
fileperms
filesize
filetype
flock
fnmatch
fopen
fpassthru
fputcsv
fputs
fread
fscanf
fseek
fstat
ftell
ftruncate
fwrite
glob
is_dir
is_executable
is_file
is_link
is_readable
is_uploaded_file
is_writable
is_writeable
lchgrp
lchown
link
linkinfo
lstat
mkdir
move_uploaded_file
parse_ini_file
pathinfo
pclose
popen
readfile
readlink
realpath
rename
rewind
rmdir
set_file_buffer
stat
symlink
tempnam
tmpfile
touch
umask
unlink
eXTReMe Tracker