sarcină
Este necesar un fișier pentru stocarea temporară a datelor.
Soluția
Apelați funcția tmpfile () dacă fișierul ar trebui să fie stocat numai în timpul executării scriptului:
$ temp_fh = tmpfile ();
// scrieți câteva date într-un fișier temporar
fputs ($ temp_fh, "Timpul curent este" .strftime ('% c'));
// fișierul este șters la sfârșitul scriptului
ieșirea (1);
Dacă doriți să creați un fișier arbitrar, dar trebuie să fie stocate și după rularea script-ul, numele fișierului trebuie să fie generate folosind funcția tempnam (), și apoi apelați funcția fopen ():
$ tempfilename = tempnam ('/ tmp', 'data-');
$ temp_fh = fopen ($ tempfilename, 'w') sau mor ($ php_errormsg);
fputs ($ temp_fh, "Timpul curent este" .strftime ('% c'));
fclose ($ temp_fh) sau mori ($ php_errormsg);
discuție
Funcția tmpfile () creează un fișier cu un nume unic și returnează descriptorul. Fișierul este șters când funcția fclose () este apelată pentru acest descriptor de fișier sau scriptul termină executarea.
În al doilea caz, numele fișierului este generat de funcția tempnam (). Este nevoie de două argumente: primul este directorul, iar al doilea este prefixul numelui fișierului.
Dacă directorul nu există sau nu poate fi înregistrată, funcția apoi tempnam () utilizează directorul temporar de sistem specificat de TMPDIR variabila de mediu în UNIX sau variabila de mediu TMP în Windows. De exemplu:
$ tempfilename = tempnam ('/ tmp', 'data-');
print "Datele temporare vor fi stocate în $ tempfilename";
Datele temporare vor fi stocate în / tmp / data-GawVoL
Modul în care PHP generează nume de fișiere temporare, astfel încât funcția de apel tempnam () creează de fapt fișierul pe care doriți, dar lasă gol dacă script-ul nu se deschide fișierul direct. Acest lucru va asigura că nici un alt program nu creează un fișier cu același nume între funcția de apel tempnam () și apel fopen () pentru fișierul cu numele dat.