Portrety Uliczne Nieznajomych - zobacz wyjątkową galerię portretów z warszawskich ulic
ZALOGUJ SIĘ
login:
hasło:
przypomnij hasło
załóż konto użytkownika
(i zobacz kilka porad gratis)
   
WYSZUKIWARKA I DZIAŁY
całe porady  tytuły
zaznacz działy do przeszukania
(brak wyboru = wszystkie działy)
PHP
MySQL >
PostgreSQL
SQLite
Perl
Java
XML
XSLT
XPath
WML
SVG
RegExp
Wyszukiwarki
Ochrona
VBScript
Google Plus
XHTML/CSS
JavaScript
Grafika
Flash
Photoshop
Windows
Linux
Bash
Apache
Procmail
E-biznes
Explorer
Opera
Firefox
Inne porady
   
KURSY, DOKUMENTACJE
Własne:
XHTML/CSS
JavaScript
ActionScript
WML, RSS, SSI
Pozostałe:
PHP
MySQL
Java API
więcej...
   
użytkowników online: 62
W CZYM MOGĘ POMÓC?


   
OPINIE UŻYTKOWNIKÓW
Gratulacje i dzięki! Trafiłem tu przypadkiem poszukując informacji na temat php+mysql. Wiele polskich stron powiela identyczne przykłady, klonuje te same kursy i lekcje... ten serwis okazał sie inny. Zasada "problem - rozwiazanie - wyjaśnienie" zdaje egzamin - zapewnia jasną, jednoznaczną i pewną pomoc w konkretnym przypadku. Porady są warte swojej ceny, przede wszystkim ze względu na przyjazną (także dla początkujących) formę i treść oraz bogate i stale powiększane zasoby. Polecam i pozdrawiam!

Kamil Dmowski
Polski Czerwony Krzyż

   
GALERIA FOTOGRAFII
   
PODRĘCZNIK PHP 5.x, 4.x, 3.x - częściowo spolszczony / źródło: www.php.net

[Spis] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [X] [W] [Z]

fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush -- Przekierowuje wyjście do pliku

Opis

bool fflush ( resource uchwyt )

Ta funkcja wymusza zapis całego zbuforowanego wyjścia do zasobu wskazywanego przez uchwyt pliku uchwyt. Zwraca TRUE w przypadku sukcesu, FALSE w przypadku porażki.

Wskaźnik na plik musi być poprawny i musi wskazywać na plik pomyślnie otwarty przez funkcję fopen() lub fsockopen().




User Contributed Notes

oryan at zareste dot com
31-Oct-2005 01:48

Just a note that fflush takes care of the cache already, at least on my server.  Using clearstatcache before reading a previously written file also worked, but lagged the output time much more noticeably (by two or three seconds), probably due to excess cache erasing beyond files.


draco at lomag dot net
12-Nov-2004 10:50

If you are write to a file, fflush() it and then hope to re-read in the data, you probably need to use http://www.php.net/manual/en/function.clearstatcache.php

Because of PHP's caching, it caches the original file when the script is first executed, so if you reread the file you wrote to, it will look like it was when it first executed. It wont contain any of the information you wrote to it.


jzho327 at cse dot unsw dot edu dot au
27-Jan-2003 09:27

Sorry, the note I previously added regarding fflush() has a bug!

when you read file by calling
$fp = fopen("myfile", "a+");

and you wish to read the content, you have to call
rewind($fp) before you attemp to read it. (Silly me) Or else if you tried something like
$fp = fopen("myfile", "a+");
$content = fread($fp);

// show that content is in fact null
if ($content == NULL)
 print "but it must be first put to rewind<br>\n";

will result

but it must be first put to rewind.
[new line]

in fact, if you are not careful (like me), and you opened it with
$fp = fopen("myfile", "r+");
$content = fread($fp);
..
// do something with content
..
then you tried to again
$content = fread($fp);
without rewind, you'd get NULL again. This sounds trivial, but if you work with several file resources, with freads and fopens everywhere, you can get easily lost. So becareful.


jzho327 at cse dot unsw dot edu dot au
27-Jan-2003 08:42

The use of fflush() seems to be useful when a resource handler is opened via 'r+' or 'a+', whence the user wish to read and write with one fopen command. Normally in such situation, for some reason everyone do

$fileName = "myfile";
$fp = fopen($fileName, "r");
..
// read the content
..
fclose($fp);
$fp = fopen($fileName, "a");
..
// write some new content
..
fclose($fp);

Now, it's probably sensible if you are writing completely new contents but if you're appending a few lines of text to a large file, to me this seems waste of resource to read in the content, then wipe the file, and then rewrite with almost the same content. In such case, maybe a single fopen with "a+" will suffice, provided you call fflush() before you actually write to the file.

Example,

suppose 'textfile' contain
line1: blah blah blah
line2: eni mani mu
line3: I can't believe it's not Java
[new line]

and you did
$fp = fopen("textfile", "a+");
fwrite($fp, "line4: at least it's not C#\n");
fclose($fp);

you will get

line1: blah blah blah
line2: eni mani mu
line3: I can't believe it's not Java
line1: blah blah blah
line2: eni mani mu
line3: I can't believe it's not Java
line4: as long as it's not C#\n
[new line]
 
instead, you should do
$fp = fopen("textfile", "a+");
fflush($fp);
fwrite($fp, "line4: as long as it's not C#\n");
// or maybe even
// $newtext = "line4: as long as it's not C#\n";
// fwrite($fp, $newtext, strlen($newtext));
fclose($fp);

which will give you the desired result,
line1: blah blah blah
line2: eni mani mu
line3: I can't believe it's not Java
line4: as long as it's not C#\n
[new line]

Now, I am new to PHP (really started coding yesterday or so) so please don't flame me if there is anything terribly wrong. I do however like to see someone explain why everyone fopen(..,"r"); and then fopen(..,"a"); and hardly anyone use fopen(..,"a+"); because it can be done with the help of fflush().

...Or maybe fflush() is just as wasteful.


 

 
  © 1996-2012 & Reporter.plmiejscao serwisieabonamentwarunki korzystaniaRSSkontakt