(PHP 4, PHP 5, PHP 7)
feof — Tests for end-of-file on a file pointer
$handle
)Tests for end-of-file on a file pointer.
handle
Indicatorul fișierului trebuie să fie valid și trebuie să indice la un fișier deschis cu succes cu ajutorul fopen() sau fsockopen() (și să nu fie închis cu fclose()).
Returns TRUE
if the file pointer is at EOF or an error occurs
(including socket timeout); otherwise returns FALSE
.
If a connection opened by fsockopen() wasn't closed by the server, feof() will hang. To workaround this, see below example:
Example #1 Handling timeouts with feof()
<?php
function safe_feof($fp, &$start = NULL) {
$start = microtime(true);
return feof($fp);
}
/* Assuming $fp is previously opened by fsockopen() */
$start = NULL;
$timeout = ini_get('default_socket_timeout');
while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Handle */
}
?>
If the passed file pointer is not valid you may get an infinite loop, because
feof() fails to return TRUE
.
Example #2 feof() example with an invalid file pointer
<?php
// if file can not be read or doesn't exist fopen function returns FALSE
$file = @fopen("no_such_file", "r");
// FALSE from fopen will issue warning and result in infinite loop here
while (!feof($file)) {
}
fclose($file);
?>