CascadiaPHP 2024


(PHP 4, PHP 5, PHP 7, PHP 8)

fcloseAçık bir dosya tanıtıcısını kapatır


fclose(resource $dt): bool

dt ile ilişkilendirilmiş dosya kapatılır.

Bağımsız Değişkenler


Dosya tanıtıcısı geçerli olmalı ve fopen() veya fsockopen() tarafından başarıyla açılmış bir dosya için döndürülmüş olmalıdır (ve henüz fclose() tarafından kapatılmamış olmalıdır).

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.


Örnek 1 - Basit bir fclose() örneği


= fopen('birdosya.txt', 'r');



Ayrıca Bakınız

  • fopen() - Bir dosya veya URL'yi açar
  • fsockopen() - Bir internet veya Unix alan soketi bağlantısı açar

add a note

User Contributed Notes 7 notes

jricher at jacquesricher dot com
19 years ago
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.
Glenn S
1 year ago
Note that from PHP 8.0 onwards, attempting to close a stream that is already closed will throw a fatal TypeError.

Prior to PHP 8, this just caused a warning (that you can silence with @).
daniel7 dot martinez at ps dot ge dot com
22 years ago
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.
11 years ago
In case you have some trouble to properly disconnect some client streams opened with stream_socket_server / stream_select you should give a try to stream_socket_shutdown.

<?php stream_socket_shutdown($clientStream,STREAM_SHUT_RDWR); ?>
tom dot vom dot berg at online dot de
10 years ago
if you want to daysychain a filehandle through some functions and each function is allowed to close th file you might look in a following function first, if the handle is still valid.

Opening a file, there often will be used a code like

if (!$fh = fopen($filename, $mode)) return false;

But if you possably have closed the file and you want to check that, a smililar statement would not work.

DOES NOT WORK: if (!$fh) end_of_chain();

use beter: if (is_resource($fh)) end_of_chain();
mark at markvange * com
18 years ago
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.
James R. Steel
18 years ago
In response to kumar mcmillan 'gotcha' note below, we get a different result on a W2K machine:

= fopen('textfile.dat', 'r');
'$file_pointer is resource = ' . (is_resource($file_pointer) ? 'true': 'false');

$file_pointer is resource = false
To Top