Pagina de start a forumului STaTeZoNe
Inregistrare • Cautare • FAQ • Membri • Grupuri • Autentificare
Citire si scriere in fisiere

 
Raspunde la subiect    Pagina de start a forumului STaTeZoNe » Tutoriale Amestecate Subiectul anterior
Subiectul urmator
Citire si scriere in fisiere
Autor Mesaj
ResPecT <3 Benladen
Administrator
Administrator


Data inscrierii: 05/Dec/2007
Mesaje: 260

Mesaj Citire si scriere in fisiere Raspunde cu citat (quote)
Deschiderea fisierelor


Posibilitatea de a stoca si de a citi date întrebuințând fisiere este un mare avantaj in PHP,iar PHP include un set de functii pentru manipularea fisierelor.Povestea incepe cu functia fopen ,care deschide un fisier pentru citire sau scriere.

Code:
Sintaxa :
fopen ( string nume_fisier, string mod [, bool cale_de_includere [, resource context]] )

nume_fisier = numele fisierului pe care vreti sa-l deschideti.
mode = modul in care vreti sa deschideti fisierul.
cale_de_includere = precizati daca doriti ca fisierul sa fie cautat si in calea de includere definita in PHP.
context = contine un context obtional. (Acest parametru a fost adaugat in PHP incepand cu versiunea 5.0.0)



Parametrul de mod specifica tipul de acces de care aveti nevoie pentru flux.Poate avea din urmatoarele valori :

Code:
'r' Deschide fisierul numai pentru citire.
'r+' Deschide fisierul pentru citire si scriere.
'w' Deschide fisierul numai pentru scriere si trunchiaza mărimea fisierului la zero.Daca fisierul nu exista incearca sa-l creeze.
'w+' Deschide fisierul pentru scriere si citire si truncheaza lungimea fisierului la zero.Daca fisierul nu exista,incearca sa-l creeze
'a' Deschide fisierul numai pentru adaugare.Daca fisierul nu exista incearca sa il creeze.
'a+' Deschide fisierul pentru citire si scriere,incepand de la sfarsitul fisierului.Daca fisierul nu exista incearca sa-l creeze
'x' Creeaza fisierul si-l deschide numai pentru scriere.Daca fisierul exista,apelul esueaza si functia returneaza valoarea FALSE
'x+' Creeaza fusueryk su0k deschide pentru citire si scriere.Daca fisierul exista,apelul esueaza si functia returneaza valoarea FALSE


In Windows puteti folosi indicatorul de conversie in mod text ('t') care va transforma caracterele \n in \r\n atunci cand lucrati cu un fisier.
Puteti întrebuințat si indicatorul 'b' pentru a forta lucrul in mod binar ,care nu face conversia datelor.Pentru a utiliza un indicator de acest tip adaugati caracterele 'b' sau 't' la sfarsitul parametrului de mod ,cum ar fi 'wt' sau 'rb' .
Iata un exemplu cum putem deschide fisierul test.txt in php

Code:
$deshidere= fopen("test.php","r")

Nu sunteti restrictionati la sistemul local de fisiere.Iata cum puteti sa deschideti un fisier de pe un alt website specificandu-i adresa URL

Code:
$deschidere = fopen("httpL://www.example.com/test.txt","r")

De asemenea puteti deschide fisiere utilizând si protocolul FTP :

Code:
$deschidere = fopen("ftp://user:password@example.com/test.txt","w")



Afisarea continutului unui fisier


Exista multe metode de afisare a fisierelor,astazi vom parcurge unele metode

1) Citirea liniilor de text : fgets


Code:
Sintaxa
fgets (resource manipulator ,[ int lungime])

resource manipulator = manipulatorul de fisier corespunzator unui fisier deschis ,mai pe redus deschiderea unui fisier cu fopen
lungime = acest parametru este optional,reprezinta o extindere care daca nu este specificata ia valoarea de 1024 de octeti



Exemple de afisare a continutului unui fisier cu susținerea functiei fgets

Code:
<?php
$deschidere = fopen("test.txt","r");
while (!feof($deschidere)) {
$text = fgets($deschidere);
echo $text, "<BR>";
}
fclose($deschidere);
}
?>



2) Citirea binara : fread

Nu este necesitate sa cititi datele din fisiere linie cu linie;puteti citi o portiune oricat de mare doriti dintr-un fisier folosind functia fread.

Code:
Sintaxa
fread(resource manipulator [,int lungime])

manipulator = manipulatorul de fisier corespunzator unui fisier deschis ,mai pe limitat deschiderea unui fisier cu fopen
lungime = lungimea pe care doriti sa o cititi



Exemple de afisare a continutului unui fisier cu ajutorul functiei fread

Code:
<?php
$deschidere = fopen("test.txt","rb");
$text = fread($deschidere, filesize("test/txt"));
$inlocuire = str_replace("\n","<BR>",$text);
echo $inlocuire;
fclose($deschidere);
?>



3) Citirea unui intreg fisier : file_get_contents

Vreti sa cititi intregul continut al fisierului intr-un sir de caractere?Exista o cale mai simpla : folosind functia file_get_contents


Code:
Sintaxa
file_get_contents(string nume_fisier)

nume_fisier = numele fisierului pe care doriti sa-l cititi



Exemple de afisare a continutului unui fisier cu ajutorul functiei file_get_contents

Code:
<?php
$text = file_get_contents("test.txt");
$inlocuire = str_replace("\n","<BR>",$text);
echo $inlocuire;


?>

4) Extragerea datelor dintr-un fisier :fscanf

Pentru a simplifica extragerea datelor dintr-un fisier ,puteti sa formatati fisierul si sa folositi functia fscanf pentru citirea datelor.Iata sintaxa generala a functiei :


Code:
Sintaxa
fscanf(resource manipulator,string format)

resource manipulator = manipulatorul de fisier corespunzator unui fisier deschis ,mai pe concis deschiderea unui fisier cu fopen



Formatul in acest caz este : "%s\t%s\n" (sir de caractere,tab ,sir de caractere,linie noua)

Exemple de afisare a continutului unui fisier cu ajutorul functiei fscanf

Code:
<?php
$deschidere = fopen("test.txt","rb");
while ($text = fscanf($deschidere,"%s\t%s\n")) {
list ($nume,$prenume) = $text;
echo $nume," ", $prenume, "<BR>";
fclose($deschidere);
}
?>


Continutul fisierului test.txt

Code:
Popescu Ionel
Ionescu Calin
Iliescu Ionel




Scrierea in fisiere


1) Vreti sa scrieti intr-un fisier?Puteti folosi functia fwrite cu urmatoarea sintaxa :


Code:
Sintaxa
fwrite(resource manipulator,string sir_de_caractere [,int lungime)

resource manipulator = manipulatorul de fisier corespunzator unui fisier deschis ,mai pe scurt deschiderea unui fisier cu fopen
sir_de_caractere = caracterele pe care doriti sa le scrieti in fisier
lungime = lungime



Functia fwrite returneaza numarul de octeti scrisi in fisier sau valoarea FALSE daca a aparut o eroare.
Daca lucrati sub un sistem de operare care diferentiaza fisierele de text de cele binare (adica Windows) fisierul trebuie sa fie deschis cu indicatorul 'b' in parametru de mod al functie fopen

Exemple de scriere intr-un fisier cu functia fwrite

Code:
<?php
$deschidere = fopen("test.txt","wb");
$text_adaugare = "Acesta este un text\nAceste este sub primul text\nTot asa";
if (fwrite($deschidere,$text_adaugare)==FALSE) {
echo "Nu s-a putut scrie in fisier";
}
else {
echo "Textul a fost adaugat cu succes.";
}
fclose($deschidere);
?>



Nu tot momentul doriti sa adaugati intr-un fisier poate o sa doriti sa scrieti peste continutul existent.Acest lucru se poate realiza tot functia fwrite dar trebuie sa modificati modul de la functia fopen in acest caz 'a'

Exemple de scriere intr-un fisier cu functia fwrite


Code:
<?php
$deschidere = fopen("test.txt","ab");
$text_adaugare = "Text inlocuit\nText inlocuit 2";
if (fwrite($deschidere,$text_adaugare)==FALSE) {
echo "Nu s-a putut scrie peste fisier";
}
else {
echo "Textul a fost adaugat cu succes.";
}
fclose($deschidere);
?>


2) Scrierea intr-un fisier printr-o singura operatie : file_put_contents

Exista o scurtatura pentru situatiile in care vreti sa scrieti un text intr-un fisier,folosind functia : file_put_contents
Aceasta functie lucreaza ca si cum ar fi apelate fopen,fwrite si fclose,nu este nevoie sa deschideti sau sa inchideti fisierul si nici nu aveti nevoie de un manipulator de fisier


Code:
Sintaxa
file_put_contents(string nume_fisier,string text [,int indicatoare [,resource context]])

nume_fisier = este numele fisierului in care doriti sa adaugati informatii
text = textul pe care doriti sa-l adaugati
indicatoare = poate fi FILE_USE_INCLUDE_PATH ,FILE_APPEND sau chiar ambele
context = este un context de fisier



Exemple de scriere intr-un fisier cu functia file_put_contents

Code:
$text = "Linia numarul 1\nLinia numarul 2";
if (file_put_contents("test.txt",$text)==FALSE) {
echo "Nu s-a putut scrie in fisierul text";
}
else {
echo "Textul a fost adaugat cu succes.";
}



Sper ca vi s-a parut util acest tutorial,nu a fost copiat de pe alt website sau de pe alt undeva,ci pur si necomplicat a fost facut de mine

_________________
Trimite un SMS la numarul 7677 cu mesajul: PLATA 50613 si poti castiga o Dacia Logan (Valabil doar pentru cei cu abonament);
24/12/2007 02:32 Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:    
Raspunde la subiect    Pagina de start a forumului STaTeZoNe » Tutoriale Amestecate Ora este GMT + 3 ore
Pagina 1 din 1

 
Mergi direct la: 
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Flowers Online.Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro