Skedar teksti Php. Puna me skedarë në php: hapje, shkrim, lexim

PHP u shfaq shumë më vonë se sa gjuhët e programimit forcuan pozicionet e tyre dhe formuluan ide të përgjithshme rreth sintaksës, logjikës, variablave dhe objekteve të tjera të programit. Skedarët dhe funksionet për të punuar me ta nuk përparuan, madje edhe problemi i kodimit të skedarëve, i cili u ngrit për arsye natyrore, nuk çoi në zgjidhje rrënjësisht të reja.

Vërejtje të përgjithshme

Puna kryesore me skedarët, çfarëdo qofshin ato, konsiston në hapjen, leximin/shkrimin dhe mbylljen. Ju mund të përdorni funksionet e bllokimit/zhbllokimit të aksesit në një skedar gjatë përpunimit të tij, mund të vendosni pozicionin e leximit/shkrimit në skedar - gjithçka është njësoj si më parë, në të kaluarën e largët.

Një pikë e rëndësishme në PHP është bollëku i funksioneve për të punuar me skedarë dhe opsione për përdorimin e tyre. Në praktikë, mjafton të përdorni opsione të thjeshta por funksionale. Një skedar është, para së gjithash, memorie programore. Ju mund të ruani informacion në të. Qëllimi i çdo programi, qëllimi i çdo faqe interneti është të paraqesë, përpunojë dhe garantojë sigurinë e informacionit.

Rrethanë thelbësore

Më parë, kërkesa për pajtueshmëri, të paktën nga poshtë lart, ishte e palëkundur. Kjo do të thotë, një program i shkruar dikur në një version të një gjuhe programimi përpilohet/interpretohet në mënyrë ideale në versionin tjetër. Në programimin modern nuk është kështu. Kërkesa për pajtueshmërinë e strukturave sintaksore të një gjuhe është bërë një gjë e historisë, dhe lufta midis stileve dhe mjeteve programuese dhe versioneve të mjeteve të caktuara është bërë normë e jetës së tyre.

Puna me skedarë, si dhe me bazat e të dhënave, është po aq e rëndësishme sa ndërfaqja e faqes. E para duhet të ndërtohet në atë mënyrë që kur ndryshoni platformën, hostimin ose versionin e gjuhës, të mos ketë nevojë të ndryshoni kodin e faqes. Ndërfaqja për të punuar me skedarë duhet të përfshihet në një skript të veçantë dhe të sigurojë përputhshmëri të plotë, ashtu si dizajni i faqes duhet të përshtatet në mënyrë adekuate me çdo pajisje, shfletues dhe të sigurojë pjesën tjetër të funksionalitetit të faqes me të njëjtat aftësi.

Lexoni dhe ndryshoni veten

A mund të ndryshojë një program vetë, domethënë, a mund të përmirësohet një skenar? Deri më sot, kjo pyetje i intereson shumë njerëzve. Por detyra tingëllon shumë më praktike: PHP lexon një skedar PHP. Një zhvillues nuk mund të zgjidhë gjithmonë një problem të veçantë duke shkruar një kod specifik. Ndonjëherë është e nevojshme ta ndryshoni atë kur një vizitor vjen në sit dhe formulon një pyetje që nuk ishte parashikuar në fazën e zhvillimit.

Si në të gjitha rastet e tjera, para së gjithash duhet të hapni skedarin. Nuk ka rëndësi nëse ky skedar ekziston apo jo. Nëse dihet që skedari ekziston (funksioni file_exists() jep një përgjigje pozitive), funksioni fopen() përdoret me akses 'r', 'r+', 'a', 'a+'. Nëse skedari nuk ekziston ende, atëherë me akses 'a', 'a+', 'w', 'w+'. Rezultati i hapjes së një skedari do të jetë përshkruesi i tij. Skedari mbyllet me funksionin fclose().

Është i përshtatshëm për të përdorur PHP për të lexuar një skedar në një grup kur nuk ka nevojë për ta përpunuar atë në kohën e leximit.

nëse (skedari_ekziston ($fName)) (

$aLines = skedar ($fName)

Në këtë opsion, çdo rresht i skedarit shkon në elementin e grupit në mënyrë sekuenciale. Duhet të theksohet se funksionet file() ose file_get_contents() nuk kanë nevojë të hapin skedarin dhe ta mbyllin atë.

Kur skedari i hyrjes është shumë i madh dhe ju duhet të gjeni vetëm pak informacion, ose për arsye të tjera, mund të përdorni PHP për të lexuar skedarin rresht pas rreshti. PHP ofron mundësinë për ta bërë këtë me funksionet fgets() dhe fgetc().

$fvs = fopen ($fName, "r")

ndërsa ((false !== ($cLine = fgets($fvs, 2000)))) (

$cLines .= "
" . $i . "). " . $cLine

Të dy opsionet funksionojnë në mënyrë të përsosur. Megjithatë, kur kryeni leximin PHP të një skedari PHP për modifikim të mëvonshëm, duhet të merren masa paraprake. Nuk është gjithmonë e mundur të parashikohet se si një vizitor do ta përdorë atë në fazën e zhvillimit të faqes. Është më mirë nëse skriptet ndryshohen brenda funksioneve të faqes dhe kontrolli i këtij ndryshimi nuk është i disponueshëm për vizitorin, përfshirë administratorin e burimeve.

Ruajtja e rezultateve

Informacioni i marrë dhe i përditësuar shkruhet në skedar nga funksioni fputs() rresht pas rreshti ose nga funksioni file_put_contents() në tërësi.

$fName = $_SERVER["DOCUMENT_ROOT"] . "/tmp/scData.php"

$fvs = fopen ($fName, "a")

flock ($fvs, LOCK_EX)

$cLine = "1 rresht". chr (10)

fputs ($fvs, $cLine)

$cLine = "2 rreshta" . chr (10)

fputs ($fvs, $cLine)

flock ($fvs, LOCK_UN)

Në opsionin e regjistrimit rresht pas rreshti, mund të manipuloni të dhënat gjatë procesit të regjistrimit në rastin e dytë, vargu i shkruar ose grupi vendoset në të gjithë skedarin;

$file = " scData.php "

$cContents = file_get_contents ($file)

// duke shtuar një hyrje

$cContents .= "hyrje e re\n"

// shkruani skedarin përsëri

file_put_contents ($file, $cContents)

Leximi dhe shkrimi i skedarëve PHP është i lehtë dhe i natyrshëm. Megjithatë, është e rëndësishme të kihet parasysh: çdo skedar ka një emër, zgjerim dhe shteg (dosje). Në mënyrë që një skript PHP të mund të lexojë dhe të shkruajë skedarë, ky skrip duhet të ketë të drejtat e duhura. Ato ekspozohen automatikisht në host, por në disa raste ato duhet të zgjerohen.

Në disa raste, mund të jetë e dëshirueshme që të verifikohen rezultatet duke kryer një lexim test. Shkrimi i skedarëve PHP e kërkon këtë gjatë zhvillimit, por në disa raste, në interes të sigurisë ose besueshmërisë së faqes, kontrollimi i regjistrimit të të dhënave është thelbësor.

Një tipar karakteristik i PHP, MySQl, JavaScript dhe veçanërisht shfletuesve: duke lejuar në heshtje të ndodhin disa gabime. "Nuk njihet, nuk është bërë..." nuk është një praktikë shumë e mirë në teknologjinë më të fundit të informacionit, por i mëson zhvilluesit të mos bëjnë gabime dhe të shkruajnë kod të pastër e me cilësi të lartë, gjë që gjithashtu nuk është e keqe.

PHP dhe puna me dokumente reale

Leximi i PHP i një skedari PHP është sigurisht me interes praktik, por kjo është fusha e programimit. Përdoruesi dhe vizitori i faqes janë të interesuar për informacione të një natyre të aplikuar, të cilat ai është mësuar t'i shohë në formën e tabelave dhe dokumenteve, veçanërisht në formatet e skedarëve *.xlsx dhe *.docx. Këto janë skedarë në formatin MS Excel dhe MS Word.

Listat e mallrave, çmimet, karakteristikat zakonisht formohen në formën e tabelave, kështu që PHP leximi i skedarit Excel është thelbësor.

Bibliotekat PHPExcel dhe PHPWord janë zhvilluar për të punuar me skedarë të tillë. Sidoqoftë, përmbajtja e skedarëve *.xlsx dhe *.docx paraqitet në standardin OOXML, domethënë dokumenti i vërtetë dhe i kuptueshëm paraqitet në një arkiv zip. Arkivi Zip është një grup skedarësh, duke përfshirë fotografi, objekte, formula dhe inserte nga programe të tjera. Skedarët e tekstit këtu përfaqësohen nga përshkrimet në formën e etiketave. Leximi i një skedari të tillë nuk mjafton, ju duhet ta analizoni atë për të marrë përmbajtjen dhe strukturën për përdorim dhe modifikim.

Kjo do të thotë që operacioni i leximit kthehet në një procedurë hapjeje arkivi. Këto biblioteka hapin arkivin e dokumenteve në mënyrë të pavarur dhe i ofrojnë zhvilluesit funksione të gjera për leximin, përpunimin dhe shkrimin e dokumenteve të tilla.

Tabelat Excel

include_once 'PhpOffice/PhpExcel/IOFactory.php'

funksioni scGetExcelFile($xls)(

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

//ky grup përmban vargje vargjesh

$aSheet = $objPHPExcel->getActiveSheet()

$array = grup ()

//trajtimi

foreach($aSheet->getRowIterator() si $row)(

$cellIterator = $row->getCellIterator()

foreach ($cellIterator si $cell)(

array_push($item, iconv("utf-8", "cp1251", $cell->getCalculatedValue()))

array_push ($array, $item)

Leximi dhe përpunimi i skedarëve Excel është shumë më i vështirë sesa përpunimi i dokumenteve Word. Opsioni më i mirë, nëse keni nevojë të zbatoni një projekt serioz për leximin dhe përpunimin e informacionit të aplikuar, është fillimisht të zotëroni bibliotekën PHPWord. Kjo do t'ju japë përvojë të mirë dhe një kuptim të shpejtë të specifikave të çështjes.

Dokumentet Word

Vetëm dy rreshta:

$oWord = i ri \PhpOffice\PhpWord\PhpWord()

$oDocx = $this->oWord->loadTemplate($cFileName)

Dokumenti $cFileName tani është i disponueshëm për përpunim. Më pas hapet arkivi, zgjidhet dhe analizohet përmbajtja e tij, e cila mund të shfaqet në faqen e internetit, të ndryshohet dhe të shkruhet.

$zipClass = ZipArchive i ri()

$zipClass->open($this->tempFileName)

// lexoni të gjithë përmbajtjen e dokumentit

për ($i=0; $i<$zipClass->numFiles; $i++) (

$cNameIn = $zipClass->getNameIndex($i)

$cNameInExt = nënstr($cNameIn, -4)

nëse (($cNameInExt == ".xml") || ($cNameInExt == "rels")) (

// skedarët me shtesa ".xml" dhe ".xml.rels" ruhen në tabelën e dokumentit

// çdo rresht xml shkruhet me një numër unik sipas renditjes

$cBodyIn = $zipClass->getFromName($cNameIn)

$cBodyInLen = strlen($cBodyIn)

// të gjithë skedarët e tjerë shkruhen në dosjen e dokumentit ashtu siç është

$cNameOnly = substr($cNameIn, strrpos($cNameIn, "/") + 1)

$zipClass->getFromName($cNameIn, $cWorkPath); // përmbajtja si skedar

Mundësitë e ofruara nga PHP Excel dhe PHP Word ju lejojnë të manipuloni dokumente reale dhe ta bëni përmbajtjen e tyre relevante në çdo kohë të caktuar. Në botën e sotme dinamike, kjo bëhet shumë e rëndësishme. Qendra e gravitetit ka kaluar prej kohësh nga përdorimi lokal i teknologjisë kompjuterike në hapësirën virtuale të internetit. Prandaj, krijimi i tabelave dhe dokumenteve në produktet lokale të Microsoft është më pak efikas sesa puna me dokumente të tilla në modalitetin automatik dhe gjysmë automatik në një faqe interneti, e cila është e aksesueshme jo vetëm për krijuesin e tabelës ose dokumentit, por edhe për konsumatorët e saj.

Skedarët e tekstit, një jetë tjetër

Në një përafrim të parë, skedarët e tekstit janë më të thjeshtë se skedarët PHP ose dokumentet e aplikacionit. Megjithatë, ka diçka për të menduar këtu. Operacionet e leximit/shkrimit të skedarëve të tillë janë treguar tashmë më lart, por kuptimi i skedarëve të tillë është shumë më i rëndësishëm.

Meqenëse ekziston një i tillë si klient dhe server (i pari dominohet nga JavaScript, i dyti nga PHP), atëherë edhe mekanizmat e cookie-ve dhe të seancave nuk mund të përballojnë nevojën për të transferuar informacion midis skripteve, faqeve ose proceseve të caktuara.

Është e mundur të pasqyrohen ndryshimet e dëshiruara në bazën e të dhënave, por me të gjitha avantazhet dhe shpejtësinë e tyre, skedarët e vegjël të përkohshëm ose të përhershëm të tekstit mund të jenë një opsion shumë më interesant për transmetimin e informacionit. Nëse nuk krijoni shumë skedarë të vegjël dhe nuk kontrolloni madhësinë e tyre, ato mund të jenë një version specifik dhe më fleksibël i një baze të dhënash.

Leximi i PHP i një skedari teksti është i shpejtë, ai mund të analizohet menjëherë në një strukturë, grup ose objekt. Kjo e fundit është shumë e rëndësishme, pasi ju lejon të krijoni objekte që jetojnë jashtë kohës së caktuar për një skript PHP, i cili, siç e dini, mund të ekzistojë vetëm në server dhe vetëm në momentin që faqja ngarkohet, një përgjigje AJAX është gjeneruar, ose për një arsye tjetër që shkakton nisjen e interpretuesit PHP.

Nëse mendoni për faktin se një skedar teksti është përmbajtja dhe struktura nga zhvilluesi, një skedar PHP është sintaksa e përkthyesit plus logjika e zhvilluesit dhe përshkrimet e "taguara" html, css, xml janë elementë më semantikë, por të rregulluar. sipas standardeve statike. Mund të arrihet në përfundimin se ndoshta ka ardhur koha që skedarët të marrin përmbajtje të re, dhe kjo vetë duhet të përcaktojë cilësinë dhe logjikën e përdorimit të tyre. Pikërisht për shkak se programimi nuk është ende gati për fazën tjetër të zhvillimit të tij, skedarët sot mbeten thjesht skedarë që zhvilluesi krijon dhe përcakton përdorimin e tyre.

Gjëja më interesante dhe premtuese është kur PHP lexon një skedar PHP në mënyrë të pavarur kur lind nevoja. Dhe një PHP e thjeshtë që lexon një rresht nga një skedar rezulton në krijimin e një objekti, të paktën në gjendjen në të cilën është ruajtur. Këto nuk janë ide krejtësisht të njohura, por në botën moderne gjithçka ndryshon kaq shpejt.

Çdo programues duhet të jetë në gjendje të punojë me skedarë në mënyrë korrekte. Ky artikull ka për qëllim programuesit fillestarë të PHP, por "koleksioni i recetave" do të jetë gjithashtu i dobishëm për përdoruesit e avancuar.

Puna me skedarë ndahet në 3 faza:

  1. Hapja e një skedari.
  2. Manipulimi i të dhënave.
  3. Mbyllja e skedarit.

I. Hapja e një skedari

Për të hapur një skedar në mjedisin PHP, përdorni funksionin fopen (). Parametrat e kërkuar për këtë funksion janë emri i skedarit dhe mënyra e skedarit.

$fp = fopen("counter.txt", "r");

Sipas dokumentacionit PHP, dallohen llojet e mëposhtme të mënyrave të skedarëve:

  1. r – hapni skedarin vetëm për lexim.
  2. r+ - hap një skedar për lexim dhe shkrim në të njëjtën kohë.
  3. w – krijon një skedar të ri bosh. Nëse një skedar i tillë ekziston tashmë në momentin e thirrjes, ai shkatërrohet.
  4. w+ - e ngjashme me r+, vetëm nëse një skedar i tillë ekziston në momentin e thirrjes, përmbajtja e tij fshihet.
  5. a – hap një skedar ekzistues në modalitetin e shkrimit, me treguesin e zhvendosur në bajtin e fundit të skedarit (në fund të skedarit).
  6. a+ - hap një skedar në modalitetin lexim-shkrim, me treguesin e zhvendosur në bajtin e fundit të skedarit (në fund të skedarit). Përmbajtja e skedarit nuk fshihet.

Shënim: Mund të ketë edhe një parametër opsional në fund të cilësdo prej rreshtave: b ose t . Nëse specifikohet b, skedari hapet në modalitetin binar të leximit/shkrimit. Nëse t , atëherë modaliteti i përkthimit të furnizimit të linjës është vendosur për skedarin, d.m.th. perceptohet si tekstuale.

Për të demonstruar, merrni parasysh skenarin e mëposhtëm:

//Hap një skedar në mënyra të ndryshme
$fp = fopen("counter.txt", "r"); // Mënyra binare
$fp = fopen("counter.txt", "rt"); // Modaliteti i tekstit
$fp = fopen("http://www.yandex.ru", "r");// Hap një lidhje HTTP për lexim
$fp = fopen("ftp://user: [email i mbrojtur]", "w"); //Hap një lidhje FTP që tregon hyrjen dhe fjalëkalimin
?>

II. Manipulimi i të dhënave të skedarit

Ju mund të shkruani të dhëna në një skedar duke përdorur PHP duke përdorur funksionin fwrite (). Ky funksion merr 2 parametra të kërkuar dhe 1 opsional. Parametrat e kërkuar janë përshkruesi i skedarit dhe mënyra e skedarit:

$fp = fopen("counter.txt", "a"); // Hapni skedarin në modalitetin e shkrimit
$mytext = "Duhet të shkruajmë këtë rresht\r\n"; // Vargu i burimit
$test = fwrite($fp, $mytext); // Shkruani në skedar
nëse ($test) echo "Të dhënat u futën me sukses në skedar.";
else echo "Gabim në shkrimin e skedarit.";
fclose ($fp); //Mbyll skedarin
?>

Për të lexuar një skedar rresht pas rreshti, përdorni funksionin fgets (). Funksioni merr 2 parametra të kërkuar:


nëse ($fp)
{
ndërsa (!feof($fp))
{
$mytext = fgets ($fp, 999);
jehonë $mytext."
";
}
}

fclose ($fp);
?>

Shënim: Në këtë shembull, vlera 999 specifikon numrin e karaktereve që do të lexohen derisa treguesi të arrijë në fund të skedarit (EOF).

Për të lexuar skedarin si një tërësi e vetme, duhet të përdorni funksionin skedari i lexuar (), i cili merr 1 parametër të kërkuar. Funksioni hap një skedar, shfaq përmbajtjen e tij në një dritare të shfletuesit dhe më pas mbyll skedarin:

echoreadfile ("counter.txt");
?>

Ju gjithashtu mund të përdorni funksionin fpassthru() i cili merr 1 parametër të kërkuar. Përpara se të përdorni këtë veçori, duhet ta hapni skedarin në modalitetin e leximit. Kur skedari përfundon së lexuari, funksioni mbyll automatikisht skedarin (dhe përshkruesi i skedarit bëhet i pavlefshëm).

$fp = fopen("counter.txt", "r"); // Hapni skedarin në modalitetin e leximit
nëse ($fp) echo fpassthru($fp);
elseecho "Gabim në hapjen e skedarit";
?>

Shumë shpesh ka situata kur është e nevojshme të lexoni përmbajtjen e një siti në një grup. Kjo veçori përfshin përdorimin e funksionit skedar (). Kur thirret ky funksion, çdo rresht i skedarit do të ruhet në një element të veçantë të grupit të specifikuar.

Shënim: Funksioni nuk duhet të përdoret skedar () te skedarët binare (binary-safe), sepse Nuk është i sigurt për sa i përket leximit të skedarëve binare dhe nëse ndeshet diku me një karakter end-of-file (EOF), nuk garanton se do të lexoni të gjithë skedarin binar.

$file_array = skedar ("counter.txt"); // Lexoni skedarin në $file_array
// Puna me të dhënat e grupit
?>

Shënim: Puna me vargje përshkruhet në detaje, autorët: Mukhametshin D.F., Simdyanov I.V.

Në fund të artikullit, do të gjeni një "libër gatimi" të mirë mbi grupe që ofron zgjidhje për shumë probleme që një programues ueb has çdo ditë.

Le të imagjinojmë një situatë ku një skedar duhet të lexohet karakter për karakter. Për ta bërë këtë ne mund të përdorim funksionin fgetc (). Funksioni merr një parametër të vetëm. Funksioni është i dobishëm nëse duhet të gjejmë ndonjë karakter ose numrin e karaktereve identike.

$fp = fopen("counter.txt", "r"); // Hapni skedarin në modalitetin e leximit
nëse ($fp)
{
ndërsa (!feof($fp))
{
$char = fgetc($fp);
nëse ($char == "c") $i = $i + 1;// Gjeni karakterin "c"
}
echo "Numri i shkronjave 'c' në dosje: ". $i;
}
tjetër echo "Gabim në hapjen e skedarit";
?>

III. Mbyllja e një skedari

Skedari mbyllet duke përdorur funksionin fclose (), i cili merr 1 parametër të kërkuar.

$fp = fopen("counter.txt", "r");
nëse ($fp)
{
echo "Skedari është i hapur";
fclose ($fp); // Mbyllja e skedarit
}
?>

Koleksioni i recetave

1) Duhet të kontrollojmë nëse ekziston ky apo ai skedar. Për ta bërë këtë ne do të përdorim funksionin skedari_ekziston ().

myfile ("counter.txt"); // Përdorni funksionin myfile, duke kaluar emrin e skedarit si argument

funksioni myfile($name) //Krijoni një funksion për të kontrolluar ekzistencën e një skedari
{
if (file_exists($name)) echo "Skedari ekziston";

}
?>

Shënim: Funksioni skedari_ekziston nuk kontrollon skedarët në serverin e largët të internetit. Që funksioni të funksionojë siç duhet, skedari me skriptin duhet të jetë i vendosur në të njëjtin server me skedarin që kontrollohet.

2) Përcaktoni madhësinë e skedarit duke përdorur funksionin madhësia e skedarit()

myfile ("counter.txt");

funksioni myfile($name) //Krijoni një funksion për të kontrolluar ekzistencën e një skedari dhe për të përcaktuar madhësinë e skedarit
{
if (file_exists($name)) jehonë "Madhësia e skedarit: ".filesize($name)." bytes";
ndryshe echo "Skedari nuk ekziston";
}
?>

3) Krijoni një skedar të përkohshëm duke përdorur funksionin tmpfile()

$myfile = tmpfile();
fwrite($myfile, "Kjo rresht është shkruar në një skedar të përkohshëm."); // Shkruani në një skedar të përkohshëm
fseek ($myfile, 0); // Vendosni treguesin e skedarit
echo fread ($myfile, 1024); // nxjerr përmbajtjen e skedarit
?>

4) Duhet të përcaktoni numrin e rreshtave në skedar. Për ta bërë këtë ne përdorim funksionin numëroj()

$fp = skedar ("counter.txt");
echo "Numri i rreshtave në skedar: ".count($fp);
?>

5) Duhet të përdorim një mekanizëm për mbylljen e skedarëve

$fp = fopen("counter.txt", "a");
flock ($fp, LOCK_EX); // Blloko skedarin për shkrim
fwrite($fp, "Linja për të shkruar");
flock ($fp, LOCK_UN); // Hap
fclose ($fp);
?>

6) Duhet të heqim një rresht të caktuar nga skedari

$num_stroka = 5; //Fshi rreshtin 5 nga skedari
$file = skedar ("counter.txt"); // Lexoni të gjithë skedarin në një grup

për ($i = 0; $i< sizeof($file); $i++)
if($i == $num_stroka) unset($file[$i]);

$fp = fopen("counter.txt", "w");
fputs($fp, implode("", $file));
fclose ($fp);
?>

7) Përcaktimi i llojit të skedarit. Duke përdorur funksionin

Në fakt, si të hapni një skedar php nuk është një problem i madh. Mund të jetë më e vështirë të hapësh një shishe birre kur je në mes të një pylli. Por vetëm programuesit e zjarrtë mendojnë në këtë mënyrë. Dhe për fillestarët, ne do t'ju tregojmë për të gjitha aftësitë e PHP për të punuar me skedarë:

skedarë php

Skedarët me shtesën php përmbajnë kod të shkruar në gjuhën e programimit me të njëjtin emër. Ndryshe nga gjuhët e tjera, php është një gjuhë programimi nga ana e serverit. Kjo do të thotë, funksionon në anën e serverit. Prandaj, për të korrigjuar kodin e tij, një server lokal duhet të instalohet në makinën e klientit.

Për të punuar me skedarë php, përdoren aplikacione speciale - redaktuesit e softuerit. Më të zakonshmet janë:

  • Dreamweaver.
  • PHPEdit.
  • Zhvillimi i Eclipse PHP.


Kur krijoni uebsajte të bazuara në PHP, mund t'ju duhet të ripërdorni kodin e programit. Në situata të tilla, është e përshtatshme të lidhni zgjidhje të gatshme të vendosura në një skedar tjetër. Për këtë përdoret konstrukti i përfshirjes. Sintaksa e tij është:

përfshijnë emrin e skedarit

Shembull i lidhjes:

Skedari i përfshirë:


Përfshirja e një skedari është gjithashtu e mundur duke përdorur konstruktin e kërkuar. Ndryshe nga përfshirja, ai përfshin skedarin përpara se të ekzekutohet kodi i programit. Duke përdorur kërkesën në kod, është e mundur vetëm një telefonatë në këtë skedar. Kur të aksesohet përsëri, sistemi do të shfaqë një mesazh gabimi global dhe do të ndalojë ekzekutimin e programit.

Ndërtimi i përfshirjes përfshin vetëm burimin gjatë ekzekutimit të programit. Ai mbështet leximin e shumëfishtë të skedarit php. Nëse ndodh një gabim, do të shfaqet vetëm një mesazh paralajmërues dhe ekzekutimi i kodit do të vazhdojë nga rreshti tjetër.



Hapja dhe mbyllja e skedarëve

Në php, të gjitha operacionet me skedarë kryhen në disa faza:

  • Hapja e një skedari;
  • redaktimi i përmbajtjes;
  • Mbyllja e skedarit.

Funksioni fopen() përdoret për të hapur një skedar. Sintaksa e tij është:

int fopen (emri i skedarit të vargut, modaliteti i vargut [, int use_include_path])

Argumentet e pranuara:

  • emri i skedarit të vargut - emri i skedarit ose rruga absolute për të. Nëse shtegu i skedarit nuk është specifikuar, ai do të kërkohet në drejtorinë aktuale. Nëse skedari që kërkoni mungon, sistemi do të shfaqë një mesazh gabimi. Shembull:


  • modaliteti i vargut – tregon mënyrën e hapjes së skedarit. Vlerat e pranuara nga argumenti:
  • r – skedari hapet vetëm për lexim, treguesi i skedarit është vendosur në fillim;
  • r+ – skedari është i hapur për lexim dhe shkrim;
  • w – krijon një skedar të ri vetëm për shkrim. Nëse një skedar me të njëjtin emër ekziston tashmë, të gjitha të dhënat në të fshihen automatikisht;
  • w+ - krijon një skedar të ri për shkrim dhe lexim. Kur ekziston një skedar i tillë, të dhënat e tij mbishkruhen plotësisht me të reja;
  • a – skedari është i hapur për shkrim. Treguesi vendoset në fund. Kjo do të thotë, shkrimi në skedarin php do të fillojë jo nga fillimi, por nga fundi;
  • a+ – hapni një skedar në modalitetin lexim-shkrim. Regjistrimi do të fillojë nga fundi;
  • b – mënyra e punës me një skedar që përmban të dhëna binare (në sistemin e numrave binar). Kjo mënyrë është e disponueshme vetëm në sistemin operativ Windows.

Për të mbyllur aksesin në një skedar, përdorni funksionin fclose(). Sintaksë:

int fclose (skedar int), ku skedari int është një dorezë për sitin që do të mbyllet.

Pas çdo leximi ose shkrimi, skedari duhet të mbyllet me këtë funksion. Përndryshe, transmetimi i krijuar për skedarin mbetet i hapur. Dhe kjo çon në konsum të panevojshëm të kapacitetit të serverit.

Shembull:

Leximi dhe shkrimi i skedarëve

Për të shfaqur thjesht të gjithë përmbajtjen e një skedari, funksioni readfile() është ideal. Sintaksa e tij është:

readfile (emri i skedarit të vargut) , ku emri i skedarit të vargut është emri i skedarit të vargut (jo një dorezë).


int fpassthru (skedar int)

Funksioni kërkon hapjen dhe mbylljen e një skedari. Shembull:

Rezultati është i ngjashëm me atë të mëparshëm.

Funksionet për të punuar me skedarë në php ju lejojnë të lexoni përmbajtjen rresht pas rreshti dhe karakter pas karakteri:

  • varg fgets (skedar int, gjatësia int)– funksioni lexon një varg me gjatësi . Shembull:


  • vargje fread (skedar int, gjatësi int)– veprimi është identik me atë të mëparshëm.

Për të shkruar të dhëna teksti në një skedar, ekzistojnë dy funksione identike:

  • int fputs (skedari int, vargu i vargut [, gjatësia int ])
  • int fwrite (skedari int, vargu i vargut [, gjatësia int ])

Funksionet i shkruajnë një skedari int një varg vargu me gjatësi të caktuar int ( argument opsional). Shembull:


Krijimi dhe fshirja e skedarëve

Për të krijuar një skedar php, mund të përdorni funksionin fopen() në modalitetin e aksesit "w" ose "w+". Ose funksioni touch(). Ajo cakton kohën e modifikimit të skedarit. Nëse nuk ka asnjë element me emrin e kërkuar, ai do të krijohet. Sintaksa e tij është:

int touch (emri i skedarit të vargut [, koha int [, koha int]])

Për të krijuar një kopje të një skedari, përdorni funksionin copy(). Si argumente, ai merr emrin e origjinalit dhe skedarin ku duhet të kopjohet përmbajtja. Nëse nuk ekziston, do të krijohet. Sintaksa e funksionit:

kopjimi int (skedari i vargut 1, skedari i vargut 2)


Ju mund të fshini një skedar duke përdorur funksionin unlink(). Sintaksa e saj.

Nëse po mësoni të punoni vetë me PHP, atëherë është e rëndësishme të mësoni se si të lexoni të dhëna nga një skedar dhe të bëni ndryshime në të. Regjistrimi në skedarin php kryhet për zhvillimin e aplikacioneve në internet, ndryshimet në informacionin e serverit dhe lëshimin e programeve dhe përfshirjeve të jashtme.

Si të punoni me skedarë php

Nëse një skedar ka një shtesë të tillë, do të thotë se përmban kodin e programit të shkruar në gjuhën e programimit me të njëjtin emër. Për të bërë ndryshime, do t'ju duhet të instaloni një nga redaktuesit e softuerit në PC tuaj:

Redaktori ekspert i PHP;
. Dreamweaver;
. Zhvillimi i Eclipse PHP;
. PHPEdit.

Nëse po krijoni një faqe interneti, atëherë shpesh duhet të përdorni dizajne identike, të cilat ruhen në mënyrë të përshtatshme si shabllone në një skedar tjetër. Për këtë është më mirë të përdoret përfshirja. Pasi të keni hyrë në këtë funksion, duhet të shkruani emrin dhe shtrirjen e lidhjes në skedarin php, për shembull, të përfshini 1.php. Ky dizajn mbështet lexime të shumta të skedarit të përfshirë dhe një veçori shtesë është vazhdimësia e ekzekutimit të kodit në rast gabimi. Nëse diçka shkon keq, kodi do të vazhdojë të ekzekutohet nga një linjë e re.
Në këtë mënyrë ju do të përfshini skedarin në kodin tuaj. Një mënyrë tjetër është të hyni të kërkojë. Ndryshe nga përfshirja e përshkruar më sipër, skedari përfshihet përpara se kodi i programit të fillojë të ekzekutohet, por ju mund ta aksesoni atë vetëm një herë.

Verifikimi i skedarit

Përpara se të shkruani në një skedar php, duhet të siguroheni që ai ekziston, dhe më pas ta hapni dhe të bëni redaktimin e nevojshëm. Për ta bërë këtë, mund të përdorni funksionin file_exists() nëse konfirmon praninë, atëherë përgjigja TRUE do të kthehet në dritaren e redaktuesit, përndryshe - FALSE;
Një funksion tjetër is_file() mund t'ju njoftojë se është e mundur të shkruani të dhëna në një skedar php. Është më i besueshëm se file_exits, dhe shumica e programuesve përdorin is_file për të filluar. Pasi të keni verifikuar që skedari ekziston, mund të filloni të punoni me të.

Bërja e ndryshimeve në një skedar

Mjeti i parë që mund të përdorni për të bërë ndryshime në një skedar është fwrite(). Ai shkruan rreshta me sintaksën e mëposhtme:

Int - manipulator;
. Vargu është një variabël.

Ekziston një funksion tjetër i ngjashëm me këtë - fputs(), i cili është një pseudonim. Nuk ka dallime midis këtyre mjeteve, ju mund të zgjidhni njërën ose tjetrën. Për studentët, fwrite është më i zakonshëm, ndërsa programuesit praktikues më shpesh përdorin fputs.

Për të bërë një hyrje PHP në një skedar teksti, duhet të plotësohet një kusht i rëndësishëm - ai duhet të jetë i hapur për redaktim. Ky skedar duhet të gjendet në një dosje me leje shkrimi.

Për të punuar, provoni fillimisht të hapni një dokument teksti në program dhe më pas të bëni modifikime duke përdorur mjete të rregullta.

// Hapni një skedar teksti
$f = fopen("tekst.txt", "w");
// Shkruani një varg teksti
fwrite($f, "Përshëndetje! Mirëdita!");
// Mbyll skedarin e tekstit
fclose($f);

Në këtë shembull, text.txt është emri i dokumentit. Mund ta quani ndryshe: “Përshëndetje! Diten e mire! - një shembull teksti, mund të jetë plotësisht arbitrar. Të gjitha ndryshimet ruhen automatikisht në skedarin e hapur.

Vini re se PHP është me qëllim të përgjithshëm. Përdoret intensivisht për të krijuar aplikacione në internet. Kjo zgjidhje mbështetet nga shumica e ofruesve të pritjes. Po flasim për liderin midis mjeteve që përdoren për krijimin e faqeve të internetit. Tani ju e dini se si të shkruani në një skedar php.

Në PHP, shpesh duhet të merreni me krijimin e një skedari... është shumë e thjeshtë: nuk ka asnjë skedar në disk, kodi u ekzekutua dhe skedari u shfaq, atëherë mund ta lexoni këtë skedar në një variabël tjetër ose edhe në ndonjë faqe në Internet dhe pastaj shkruani diçka atje... por për këtë ju duhet të dini funksione të veçanta... më shumë për këtë në këtë artikull...

Për të krijuar një skedar në PHP në një skript të ekzekutueshëm, thjesht duhet të specifikoni disa funksione:

Le të hedhim një vështrim në një shembull:

$text = "Disa tekst për të shkruar në skedar";
$fp = fopen("file.txt", "w");
fwrite ($fp, $tekst);
fclose ($fp);
?>

Këtu duhet të dini:

fopen ()- funksioni hap skedarin për lexim ose shkrim dhe sqarime;

Ky sqarim (parametri i modalitetit të funksionit fopen) është shumë i rëndësishëm:

  • "r" - hapni një skedar në php Vetëm për lexim. Kursori vendoset në fillim.
  • "r+" - hapni një skedar në php për lexim dhe shkrim. Kursori vendoset në fillim. !!! - me këto dy mënyra r dhe r+, skedarët duhet të krijohen tashmë (përndryshe do të shfaqet një gabim Paralajmërim: fopen(file.txt) : dështoi në hapjen e transmetimit: Nuk ka skedar ose drejtori të tillë në ...), dhe ne vetëm lexojmë ose kemi mundësi të shtojmë.
  • "w" - Skedari hapet VETËM për shkrim. Skedari shkurtohet në gjatësi zero - dmth mbishkruhet. Shkruhet ajo që nevojitet dhe Kursori vendoset në fillim.
  • "w+" - hap një skedar për të shkruar DHE LEXIM! Pjesa tjetër është e njëjtë si në modalitetin "w". !!! - në këto dy mënyra - nëse skedari nuk është krijuar - DO TË BËHET NJË TENTIM PËR TË KRIJUAR!
  • "a" - hapni skedarin VETËM për të shkruar. Ndryshe nga "w", ky opsion nuk e mbishkruan përmbajtjen e skedarit, por vendos kursorin në fund të rreshtit dhe shton përmbajtjen që donim të shtonim në fund.
  • "a+" - hapni skedarin për shkrim dhe lexim.

fwrite($fp, $text) - një funksion për të shkruar në një skedar në PHP - domethënë, ajo që është në ndryshoren $text shkruhet në një skedar që është në ndryshoren $fp;

fclose($fp) - funksioni për mbylljen e skedarit që kemi shkruar në ndryshoren $fp;

Tani mund të krijoni me lehtësi skedarë në php në mënyrë korrekte, t'i hapni ato për lexim dhe redaktim.

Shtesa dhe funksione të dobishme PHP për të punuar me një skedar të hapur:

ndërsa(!feof($fp))(
$mytext = fgets ($fp, 99);
jehonë $mytext."
";
}

këtu plotësohet kushti - "derisa të arrihet fundi i skedarit, bëjeni këtë" ndërsa (!feof($fp))

1. Funksioni fgets($fp, 99) - ju lejon të ndani të gjithë përmbajtjen në seksione prej 99 bajte dhe më tej, për ta parë këtë më qartë vendosim një etiketë

Ky funksion i vargut fgets(trajtimi i burimit [, gjatësia int]) si parazgjedhje pranon 1024 bajt (1 kilobajt) si parametrin e gjatësisë, nëse nuk specifikohet, do të jetë kështu. Ky parametër është opsional që nga PHP 4.2.0 (Kthen FALSE në rast gabimi)

Funksione shtesë për hapjen, shkrimin dhe krijimin e një skedari

Funksioni - int skedari i lexuar(emri i skedarit të vargut [, bool use_include_path [, konteksti i burimit]]) - lexoni skedarin në tërësi.

Lexon një skedar dhe shkruan përmbajtjen në bufferin e daljes. Dhe kthen numrin e bajteve në dalje. Në rast gabimi, ai do të kthehet nëse qeni nuk përdoret - @readfile.

Diçka e tillë do të ndodhë:

Në fund të fjalës ka një etiketë
.

b. Funksioni - grup dosje(emri i skedarit të vargut [, int use_include_path [, konteksti i burimit]]), bën të njëjtën gjë si funksioni readfile, me një përjashtim shton përmbajtjen e skedarit në një grup:

Në këtë mënyrë mund të lexoni çdo faqe në internet: $lines = file("http://site/"); dhe përsëritni nëpër grup duke përdorur funksionin foreach;

3a. funksioni i vargut file_get_contents(emri i skedarit të vargut [, bool use_include_path [, konteksti i burimit [, int offset [, int maxlen]]]] - ju lejon të merrni përmbajtjen si një varg i vetëm.

Ky është një funksion më universal PHP për leximin e një skedari, i ngjashëm me funksionin e skedarit, vetëm përmbajtja kthehet si një varg, jo një grup, dhe mund të vendosni kushte - me cilin bajt të filloni - kompensuar dhe ku të përfundojë - maxlen. Në rast dështimi, do të kthehet FALSE.

E rëndësishme!!!- në këtë rast, funksioni zëvendëson 3 në të njëjtën kohë: fopen(), fread() dhe fclose() dhe kështu shpëton shenjën.

3b. funksioni int file_put_përmbajtja(emri i skedarit të vargut, të dhënat e përziera [, flamujt int [, konteksti i burimeve]]) - identike me thirrjet sekuenciale të funksioneve fopen(), fwrite() dhe fclose() - kthen numrin e bajteve të shkruara.




Top