Paggawa gamit ang mga file sa php: pagbubukas, pagsulat, pagbabasa. Paano maayos na basahin ang mga file gamit ang PHP Writing at pagbabasa ng php file

Sa ilalim nagtatrabaho sa mga file sa PHP ipinahiwatig pagbabasa mula sa file At sumulat sa file iba't ibang impormasyon. Malinaw na kailangan mong gumawa ng maraming mga file, kaya kahit ano PHP programmer ay dapat na basahin mula sa file At sumulat sa file.

Kasunod nagtatrabaho sa mga file sa PHP ganito:

  1. Buksan ang file.
  2. Isagawa ang mga kinakailangang aksyon.
  3. Isara ang file.

Tulad ng nakikita mo, ang pagkakasunud-sunod ng pagtatrabaho sa mga file ay kahawig ng pagtatrabaho sa mga file sa pamamagitan ng isang regular na explorer. Dito lamang ang lahat ng gawain ay awtomatikong ginagawa ng ating sarili script ng PHP.

Magsimula tayo sa unang punto - pagbubukas ng file. Binuksan ang file gamit ang fopen() function. Ang unang parameter ay ang landas ng file at ang pangalawang parameter ay modifier. Tingnan natin kaagad ang mga posibleng modifier:

  1. a- binubuksan ang file para sa pagsusulat lamang, na ang pointer ay nakalagay sa dulo ng file.
  2. a+ a, ngunit bubukas din ang file para sa pagbabasa.
  3. r- binubuksan ang file para sa read-only, at ang pointer ay nakatakda sa simula ng file.
  4. r+- katulad ng modifier r, ngunit ang file ay binuksan din para sa pagsusulat.
  5. w- binubuksan ang file para sa pagsusulat lamang, itinatakda ang pointer sa simula ng file at binubura ang buong nilalaman ng file.
  6. w+- katulad ng modifier w, tanging ang file lang ang binuksan para basahin.

Mayroon ding dalawang mga mode ng pagtatrabaho sa mga file: binary(tinutukoy b) At text(tinutukoy t). Kung nagtatrabaho ka sa isang regular na text file, pagkatapos ay piliin ang text mode, at kung, halimbawa, gamit ang isang imahe, pagkatapos ay piliin ang binary mode.

Ito ang lahat ng mga pangunahing modifier, na magiging sapat para sa iyo. Ngayon, alamin natin kung paano isara ang isang file. Isinasara ang file gamit ang fclose() function.

Ngayon ay magpatuloy tayo sa pagbabasa ng file gamit fread() function. At hayaan mo akong bigyan ka ng isang halimbawa:

$contents = "";
habang (!feof($handle))
$contents .= fread($handle, 4096);
fclose($hawakan);
?>

Sa halimbawang ito, buksan muna namin ang file para sa pagbabasa sa text mode (modifier rt). fopen() function ibinabalik ang tinatawag na deskriptor, kung saan maaari kang makipag-usap sa file, at isulat ito sa isang variable hawakan. Pagkatapos ay nasa isang loop kami habang() hanggang sa maabot ang dulo ng file, binabasa namin ang mga nilalaman sa bawat oras 4096 mga character na isinusulat namin sa variable nilalaman. Matapos makumpleto ang proseso ng pagbabasa, isara ang file, muli gamit ang file descriptor.

Ngayon ay lumipat tayo sa pag-record gamit fwrite() function:

$handle = fopen("files/a.txt", "at");
$string = "Ito ang teksto";
fwrite($hawakan, $string);
fclose($hawakan);
?>

Pagkatapos patakbuhin ang script na ito, sa file a.txt ang linya " ay idadagdag Ito ay text".

Partikular na matulungin na mga mambabasa ang nagbigay-pansin sa mga payo na isinulat ko tungkol sa itaas. Pointer- ito ang kasalukuyang posisyon ng haka-haka na "cursor" sa file. Dito magsisimula ang trabaho sa file. Maaari mong baguhin ang posisyon ng pointer gamit fseek() function:

$handle = fopen("files/a.txt", "rt");
echo $contents."
";
fseek($handle, 0, SEEK_SET);
$contents = fread($handle, 3);
echo $contents."
";
?>

Kaya nagbasa muna kami 3 character (bilang resulta, ang kasalukuyang posisyon ng pointer ay inililipat ng 3 mga posisyon). Pagkatapos ay itinakda namin ang pointer sa simula ng file. At nagbasa ulit kami 3 simbolo. Gaya ng nahulaan mo, binilang namin ang parehong bagay nang dalawang beses. Iyon ang unang pagkakataon 3 simbolo, pagkatapos ay bumalik at muling binilang 3 simbolo. Gayundin kung ikaw fseek() function palitan SEEK_SET sa SEEK_CUR, pagkatapos ay hindi itatakda ng pangalawang parameter ang posisyon ng pointer, ngunit ililipat ito kaugnay sa kasalukuyang lokasyon. Ipinapayo ko pa sa iyo na magsanay gamit ang mga payo, dahil hindi ito madaling maunawaan. Inirerekumenda ko rin na subukang magsulat ng isang bagay sa file sa posisyon ng pointer, halimbawa, sa pinakadulo simula ng file. At siguraduhing ipaliwanag ang iyong mga resulta.

At sa wakas, nais kong magbigay ng ilang higit pang mga function na nagbibigay-daan sa iyo upang gumana sa mga file sa pinakasimpleng antas: file_put_contens() At file_get_contents(). Function file_put_contents() nagsusulat sa isang file, at ang function file_get_contents() nagbabasa ng nilalaman mula sa isang file. Ang mga function na ito ay napakadaling gamitin, ngunit may mas kaunting mga pagpipilian (bagaman, bilang isang panuntunan, hindi sila kinakailangan):

file_put_contents("files/a.txt", "Ito ang text 2");
echo file_get_contents("files/a.txt");
?>

Sa script na ito, una naming isinulat ang linyang " Ito ang text 2" sa isang file, at pagkatapos ay binabasa namin ang nagreresultang nilalaman at ilalabas ito. Gaya ng nakikita mo, mahirap gumawa ng mas simpleng paraan pagbabasa mula sa file At sumulat sa file.

Iyon lang ang mga pangunahing punto nagtatrabaho sa mga file sa PHP.

Ang mga database ng MySQL at Access ay lalong nagiging available sa publiko na mga tool sa pag-iimbak ng data. Ngunit noong unang bahagi ng 1990s, ang pagtatrabaho sa mga file sa PHP ay popular, na nagse-save ng mga tala sa CSV formatted text file na pinaghihiwalay ng mga bagong linya.

Mga pangunahing prinsipyo ng pagpapatakbo

Ang mga database ay maginhawa, ngunit ang bawat developer ay dapat magkaroon ng ilang pangunahing kaalaman kung paano magbasa at magsulat ng mga file. Maaaring iniisip ng maraming tao ang tanong na: “Bakit kailangan kong malaman ito? Kung gumagamit ako ng mga file, nakasulat ang mga ito sa XML at ginagamit ko lang ang parser."

Kaya narito ang ilang dahilan kung bakit maaaring kailanganin mo ng mga file:

  1. Upang ilipat ang binary data (gaya ng mga image file) sa isang BLOB (binary large object) database.
  2. Mag-import ng data (tulad ng mga email address) na na-export mula sa isang legacy na database o application.
  3. Upang i-export ang impormasyon mula sa isang database patungo sa isang text file para sa offline na pagproseso.

Ang pagbabasa ng mga file at pagsusulat ay mga pangunahing operasyon. Kung kailangan mong magbasa ng isang dokumento, kailangan mo munang buksan ito. Pagkatapos nito, dapat mong basahin ang pinakamaraming nilalaman hangga't maaari, pagkatapos ay isara ang file. Upang magsulat ng impormasyon sa isang dokumento, kailangan mo munang buksan ito (o marahil ay likhain ito kung hindi pa ito nagagawa). Pagkatapos nito, itala ang kinakailangang data at isara ito kapag nakumpleto.

Maginhawa ring gamitin ang mga built-in na function na awtomatikong nagbubukas at nagsasara. Available ang mga ito sa PHP5. Dapat mo ring maging pamilyar sa mga katangian ng file, iyon ay, mga katangian nito.

Masasabi nila:

  • tungkol sa laki;
  • magbigay ng impormasyon tungkol sa huling pagkakataon na siya ay nakipag-ugnayan;
  • sabihin tungkol sa may-ari, atbp.

Pinakamainam na matutunan ang lahat ng mga pangunahing katangian para sa pagtatrabaho sa mga file sa PHP. Gagawin nitong mas madali ang trabaho.

Kasaysayan ng file

Maaaring kailanganin mong malaman kung kailan huling na-edit ang file. Sa kasong ito, ang mga function na fileatime(), filemtime() at filectime() ay sumagip.

"; echo $file . " ay huling binago ang i-node " . date($formatDate, $timeM) . ".
"; echo $file . " ay binago " . date($formatDate, $timeC) . ".";

Narito ang code na kumukuha ng huling timestamp ng access at ipinapakita ito:

  • C: Na-access ang Windowsfile.ini noong Set 19, 2018 4:34 pm.
  • C: Binago ang Windowsfile.ini Biy Okt 8, 2018 2:03 am.
  • C: Binago ang Windowsfil.ini noong Martes Disyembre 16, 2017 4:34 am.

Ipinapakita ng function na filectime() ang oras ng pagbabago ng iba't ibang impormasyong nauugnay sa isang file (halimbawa, mga pahintulot), at ang filmtime() ay nagpapakita ng oras ng pagbabago ng file mismo.

Ginamit ang date() function para i-format ang Unix timestamp na ibinalik ng file*time() function.

File o hindi?

Upang malaman kung ang pagmamanipula ng file ay aktwal na nangyayari sa PHP, maaari mong gamitin ang is_file() function o ang is_dir() function upang suriin kung ito ay isang direktoryo.

"; echo $file . (is_dir($file) ? " " : " hindi") . " direktoryo.";

Halimbawang output ng code:

  • C: Windowsfile.ini file.
  • C: Ang Windowsfile.ini ay hindi isang direktoryo.

Sa ganitong paraan maaari mong maiwasan ang mga pagkakamali at hindi magbukas ng "non-file" sa pamamagitan ng kapabayaan. Sa PHP, ang pagtatrabaho sa mga file at direktoryo ay magkatulad.

Mga Pahintulot sa File

Bago magtrabaho sa isang file, maaari mong suriin kung ito ay nababasa o nasusulat. Upang gawin ito, kailangan mong gamitin ang is_writable() at is_readable() function.

"; echo $file . (is_writable($file) ? " " : " not") . " ay nakasulat.";

Ang mga function na ito ay nagbabalik ng boolean value at nagpapaliwanag kung ang operasyon ay maaaring gawin sa file.

Ilalabas ng code ang mga sumusunod na halaga sa screen:

  • C: Binabasa ang Windowsfile.ini.
  • C: Windowsfile.ini ay hindi nakasulat.

Gamit ang ternary operator, maaari mong ipahiwatig kung ang isang file ay naa-access o hindi.

laki ng file

Upang malaman ang laki ng file, kailangan mong gamitin ang filesize() function. Ito ay ipapakita sa bytes.

Ipapakita ng function ang sumusunod:

  • C: Ang Windowsfile.ini ay 510 bytes ang laki.

Ang paggamit ng file sa isang Windows system ay nagha-highlight ng isang punto dito. Ang backslash ay may espesyal na kahulugan bilang karakter sa pagtakas. Kakailanganin mong takasan ito sa pamamagitan ng pagdaragdag ng isa pang backslash.

Kung ang file ay hindi pa nagagawa, ang filesize() function ay mag-uulat ng False at isang error. Samakatuwid, sinusuri muna nila ang file para sa pagkakaroon ng kinakailangang file_exists() na utos.

Ang file_exists() check ay dapat halos palaging pinagana para sa seguridad.

Nagbabasa ng mga file

Ang nakaraang seksyon ay nagpakita kung gaano karaming matututuhan tungkol sa mga file na iyong pinagtatrabahuhan bago ka magsimulang magbasa o sumulat sa kanila. Ngayon ay maaari mong malaman kung paano binabasa ang mga nilalaman ng file.

Pinapadali ng mga function para sa pagtatrabaho sa mga PHP file ang mga bagay. Sa kasong ito, kakailanganin mo ang file_get_contents(). Babasahin nito ang buong nilalaman ng file sa isang variable nang hindi kinakailangang buksan o isara ang file mismo. Ito ay maginhawa kapag ang dami ng pag-record ay medyo maliit, dahil ang agad na pagbabasa ng 1 GB ng data sa isang archive ay hindi palaging makatuwiran sa PHP. Paggawa gamit ang ".ini" na mga file at ang file_get_contents() function ay ipinapakita sa ibaba.

Para sa mas malalaking file, o depende lang sa mga pangangailangan ng iyong script, maaaring mas makatuwirang pangasiwaan ang mga detalye nang mag-isa. Ito ay dahil sa sandaling mabuksan ang file, maaari mo itong hanapin para sa isang partikular na tala at magbasa ng maraming data hangga't gusto mo. Ang fopen() function ay ginagamit upang buksan ang isang file.

Ang fopen() function ay nangangailangan ng dalawang argumento:

  • ang file na bubuksan;
  • Ang mode na ginamit sa kasong ito ay "r" para sa pagbabasa.

Ang function ay nagbabalik ng hawakan o stream sa isang file, na nakaimbak sa $file1 variable. Dapat itong gamitin sa lahat ng kasunod na mga utos kapag nagtatrabaho sa file.

Upang magbasa mula sa isang bukas na file nang paisa-isa, maaari mong gamitin ang function na fgets().

";) habang (!feof($file1));fclose($file1);

Ang paggamit ng do-while loop ay isang mahusay na pagpipilian upang malaman nang maaga kung gaano karaming mga linya ang mayroon sa isang file. Ang feof() function ay sumusuri upang makita kung ang file ay nakumpleto na at ang loop ay nagpapatuloy hanggang sa katapusan ng kondisyon ng file ay naabot. Matapos makumpleto ang pagbabasa, ang fclose() function ay ginagamit upang isara ang dokumento.

Pagre-record ng mga file

Dalawang karaniwang ginagamit na mode kapag nagsusulat sa isang file gamit ang fwrite() function ay "w" at "a". Ang ibig sabihin ng "W" ay kung ano ang kailangang isulat sa dokumento, ngunit tatanggalin muna nito ang anumang nilalaman, ang ibig sabihin ng "a" ay pagdaragdag ng bagong data sa kung ano ang mayroon na sa file. Kailangan mong tiyakin na ang tamang opsyon ay ginamit.

Ang sumusunod na halimbawa ay gagamit ng "a" recording mode.

Una ang pangalan ng file ay itinalaga sa isang variable, pagkatapos ay bubuksan ito sa "a" mode para sa pagdaragdag. Ang data na isusulat ay itinalaga sa $output variable at fwrite(), at ang impormasyon ay idinaragdag sa file. Ang proseso ay paulit-ulit upang magdagdag ng isa pang linya, pagkatapos ang dokumento ay sarado gamit ang fclose().

Ang paunang-natukoy na pare-parehong PHP_EOL ay nagdaragdag ng bagong linyang character na partikular sa platform kung saan tumatakbo ang PHP kasama ng mga text file.

Ang mga nilalaman ng file pagkatapos isagawa ang code sa itaas ay dapat magmukhang ganito:

  • saging;
  • Tsina.

Ang file_put_contents() function ay maaari ding sumulat sa isang file. Kinakailangan ang pangalan ng file, ang data na isusulat, at ang pare-parehong FILE_APPEND kung dapat itong magdagdag ng data (ma-overwrite ang mga default na nilalaman ng file).

Narito ang parehong halimbawa sa itaas, ngunit sa pagkakataong ito ay gumagamit ng file_put_contents().

Kailangan mong magtrabaho nang madalas sa mga function na ito, kaya mas mahusay na tandaan ang mga ito. Bilang karagdagan, maaari nilang isang araw na gawing mas madali ang ilang kumplikadong mga gawain kapag nagtatrabaho sa mga file na PHP.

Huling na-update: 11/1/2015

Tulad ng karamihan sa mga programming language, sinusuportahan ng PHP ang pagtatrabaho sa mga file, na isa sa mga paraan upang mag-imbak ng impormasyon.

Pagbasa at pagsulat ng mga file

Pagbubukas at pagsasara ng mga file

Upang buksan ang mga file sa PHP, ang fopen() function ay tinukoy. Ito ay may sumusunod na kahulugan: resource fopen(string $filename, string $mode) . Ang unang parameter ng $filename ay kumakatawan sa landas patungo sa file, at ang pangalawa ay ang opening mode. Depende sa layunin ng pagbubukas at ang uri ng file, maaaring kunin ng parameter na ito ang mga sumusunod na halaga:

    "r" : Ang file ay binuksan read-only. Kung wala ang file, nagbabalik ng false

    "r+" : Ang file ay binuksan read-only at naisusulat. Kung wala ang file, nagbabalik ng false

    "w" : Ang file ay binuksan para sa pagsusulat. Kung mayroon nang ganoong file, ito ay mapapatungan, kung hindi, ito ay nilikha.

    "w+" : Ang file ay binuksan para sa pagsulat at nababasa. Kung mayroon nang ganoong file, ito ay mapapatungan, kung hindi, ito ay nilikha.

    "a" : Binuksan ang file para sa pagsusulat. Kung mayroon nang ganoong file, isusulat ang data sa dulo ng file, at mananatili ang lumang data. Kung ang file ay hindi umiiral, ito ay nilikha

    "a+" : Binuksan ang file para sa pagbabasa at pagsusulat. Kung umiiral na ang file, idaragdag ang data sa dulo ng file. Kung ang file ay hindi umiiral, ito ay nilikha

Ang output ng fopen function ay isang file descriptor. Ang handle na ito ay ginagamit para sa mga pagpapatakbo ng file at upang isara ang file.

Pagkatapos tapusin ang trabaho, dapat na isara ang file gamit ang fclose() function, na kumukuha ng file descriptor bilang parameter. Halimbawa, buksan at isara natin ang isang file:

$fd = fopen("form.php", "r") o die("hindi mabuksan ang file"); fclose($fd);

Ang or die("error text") ay nagbibigay-daan sa script na huminto sa pagtakbo at magpakita ng ilang mensahe ng error kung ang fopen function ay hindi nabuksan ang file.

Nagbabasa ng file

Maaari kang gumamit ng ilang mga function upang basahin ang isang file. Para sa line-by-line na pagbabasa, ginagamit ang fgets() function, na tumatanggap ng file descriptor at nagbabalik ng isang line read. Tingnan natin ang buong file linya sa linya:

Sa tuwing tatawagin ang fgets(), ilalagay ng PHP ang pointer sa dulo ng nabasang linya. Upang subaybayan ang dulo ng isang file, ginagamit ang feof() function, na nagbabalik ng true kapag nakumpleto na ang file. At hanggang sa maabot ang dulo ng file, magagamit natin ang function na fgets().

Binabasa ang buong file

Sa kasong ito, hindi namin kailangang tahasang buksan ang file, kumuha ng handle, at pagkatapos ay isara ang file.

I-block ang pagbabasa

Maaari ka ring gumawa ng block-by-block read, iyon ay, basahin ang isang tiyak na bilang ng mga byte mula sa isang file gamit ang fread() function:

Ang fread() function ay tumatagal ng dalawang parameter: ang file handle para basahin at ang bilang ng mga byte na babasahin. Kapag nabasa ang isang bloke, lilipat ang pointer sa file sa dulo ng bloke na iyon. At gamit din ang feof() function na maaari mong subaybayan ang pagkumpleto ng isang file.

Sumulat ng isang file

Upang magsulat ng isang file, gamitin ang fwrite() function, na nagsusulat ng sumusunod na linya sa file:

Ang isa pang function ng fputs() ay gumagana nang katulad:

Paggawa gamit ang file pointer

Kapag binubuksan ang isang file para sa pagbabasa o pagsusulat sa "w" na mode, ang pointer sa file ay inilalagay sa simula. Kapag nagbabasa ng data, inililipat ng PHP ang pointer sa file sa dulo ng block ng data na nabasa. Gayunpaman, maaari rin nating manual na manipulahin ang pointer sa file at itakda ito sa isang arbitrary na lokasyon. Upang gawin ito kailangan mong gamitin ang function fseek, na may sumusunod na pormal na kahulugan:

Int fseek (resource $handle , int $offset [, int $whence = SEEK_SET ])

Ang parameter na $handle ay kumakatawan sa isang file handle. Ang parameter na $offset ay ang offset sa mga byte na nauugnay sa simula ng file kung saan magsisimula ang pagbabasa/pagsusulat. Tinutukoy ng ikatlong opsyonal na parameter kung paano nakatakda ang offset. Maaaring tumagal ng tatlong halaga:

    SEEK_SET : default na halaga, itinatakda ang offset sa mga offset na byte na nauugnay sa simula ng file

    SEEK_CUR : itinatakda ang offset sa mga offset na byte na nauugnay sa simula ng kasalukuyang posisyon sa file

    SEEK_END : itinatakda ang offset upang i-offset ang mga byte mula sa dulo ng file

Kung ang pointer ay matagumpay na na-install, ang fseek() function ay nagbabalik ng 0, at kung ang pointer ay hindi matagumpay, ito ay nagbabalik -1.

Halimbawa ng paggamit ng function:

$fd = fopen("hello.txt", "w+") o die("hindi mabuksan ang file"); $str = "Kumusta mundo!"; // linya para magsulat ng fwrite($fd, $str); // isulat ang linya sa simula fseek($fd, 0); // ilagay ang file pointer sa simula fwrite($fd, "Oink"); // isulat ang linya sa simula fseek($fd, 0, SEEK_END); // ilagay ang pointer sa dulo fwrite($fd, $str); // magsulat ng isa pang linya sa dulo fclose($fd);

At ngayon ay magkakaroon ng isang medyo malaki, ngunit hindi kumplikadong aralin tungkol sa pagtatrabaho sa mga file sa PHP. Una sa lahat, para saan ang mga file? Pagkatapos ng lahat, maaari mong iimbak ang lahat sa isang MySQL o PostgreSQL o anumang iba pang database. Ngunit kung minsan may mga gawain kapag gumagamit ng isang database, kasama ang lahat ng pagproseso at pag-aalala para sa seguridad ng koneksyon, ay hindi ipinapayong. Halimbawa, kailangan naming gumawa ng isang regular na counter, ngunit bago ito hindi kami gumamit ng isang database sa proyekto. Kaya, para sa kapakanan ng isang maliit na counter, dapat ba tayong lumikha ng isang database at mag-imbak lamang ng ilang linya dito? Mas madaling gumamit ng mga file dito. Bilang karagdagan, kung minsan ang pagho-host ay hindi sumusuporta sa mga database, kung gayon ang mga file ay karaniwang ang tanging pagpipilian.

Well, sabihin nating kinumbinsi kita na kailangan ang mga file :) Ngayon, alamin natin kung paano gagana sa kanila. Paano gumawa, magbukas, magsulat, mag-overwrite, magbasa at iba pa. Una sa lahat.

Gumawa ng file

Ginagamit ng PHP ang function na fopen upang magbukas ng mga file. Gayunpaman, maaari rin itong lumikha ng mga file. Kung ipapasa mo ang isang file name na hindi umiiral, ito ang gagawa nito.

Ang fopen function mismo ay tumatagal ng dalawang parameter, na parehong kinakailangan. Una, dapat nating tukuyin ang pangalan ng file na gusto nating buksan. Pangalawa, ipasa ang isang parameter na nagsasabi sa function kung ano ang plano naming gawin sa file na ito (halimbawa, pagbabasa mula sa file, pagsulat, atbp.).

Kung kailangan naming lumikha ng isang file, pagkatapos ay tinukoy namin ang pangalan nito at ipasa ang parameter na nais naming isulat ang data dito. Tandaan: Dapat nating tiyaking sasabihin sa PHP kung ano ang isinusulat natin sa file, kung hindi, hindi ito gagawa ng bagong file.

Halimbawa:

$ourFileName = "testFile.txt";

$ourFileHandle = fopen($ourFileName, "w") o die("hindi mabuksan ang file");

fclose($ourFileHandle);

Ang unang linya na $ourFileName = testFile.txt ay lumilikha ng string variable kung saan iimbak namin ang pangalan ng file.

Ang pangalawang linya na $ourFileHandle = fopen($ourFileName, 'w') o die("hindi mabuksan ang file") ayon sa pagkakabanggit ay lumilikha o nagbubukas ng isang umiiral na file para sa pagsusulat. O nagbabalik ito ng mensahe na hindi nito mabubuksan ang file.

Isinasara ng ikatlong linya na fclose($ourFileHandle) ang file. Ito ay talagang simple.

Mga pagpipilian sa pagbubukas ng file sa php

Ang unang parameter na 'r' (read) - nagbubukas ng file para sa read only; hindi ka maaaring sumulat dito.

Ang pangalawang parameter na 'w' (magsulat) - bubukas para sa pagsusulat. Sa kasong ito, ang pag-record ay palaging pupunta mula sa simula ng file. Kung mayroon nang ilang impormasyon doon, ito ay mapapatungan.

Ang ikatlong parameter na 'a' (idagdag) - nagbubukas ng file para sa pagsusulat, ngunit idaragdag sa dulo ng file, hindi tulad ng w.

Mga advanced na opsyon:

Parameter 'r+' - nagbubukas para sa parehong pagbabasa at pagsusulat. Ang pointer ay nasa simula ng file.

Parameter 'w+' - nagbubukas para sa parehong pagbabasa at pagsusulat, PERO tinatanggal ang lahat ng impormasyong nasa file!!!

parameter 'a+' - bubukas para sa pagbabasa at pagsusulat, ngunit ang pointer ay nasa dulo ng file.

Naturally, isa lamang sa mga parameter na ito ang maaaring maipasa sa isang function, at hindi marami. Kailangan nilang palitan ang 'X":

fopen($ourFileName, "X")

Sumulat sa file

Well, ngayon binuksan namin ang file, pinili ang parameter na kailangan namin, ano ang susunod? Kailangan mong magsulat ng isang bagay dito. Paano ito gagawin? Gamit ang function na fwrite, na kumukuha bilang mga parameter ng isang pointer sa isang file at isang linya ng teksto na gusto naming isulat. Halimbawa:

$myFile = "testFile.txt";

$fh = fopen($myFile, "w") o die("hindi mabuksan ang file");

$stringData = "Unang linya";

fwrite($fh, $stringData);

$stringData = "Ikalawang linya";

fwrite($fh, $stringData);

Gumawa kami ng file na testFile.txt, ang pointer dito ay nakaimbak sa $fn variable. Isinulat namin ang linyang "Unang linya" dito (sa dulo ginamit namin ang end-of-line na simbolo n), at pagkatapos ay "Ikalawang linya". Pagkatapos ay isinara nila ang file.

PANSIN! Huwag kalimutang isara ang iyong mga file! Kung hindi, kung hindi normal na natapos ang pagpapatupad ng script, hindi mase-save ang data sa mga file! Laging gumamit ng fclose pagkatapos ng trabaho!!!

Pagbabasa mula sa isang file

Naisulat na natin ito, ngayon ay basahin natin ito! Hindi rin naman ganoon kahirap. Ginagamit namin ang function ng fread. Bilang input binibigyan namin ito ng pointer sa file at ang bilang ng mga byte na gusto naming basahin. Halimbawa, ang isang character ay katumbas ng isang byte (depende sa pag-encode), gusto naming magbasa ng 5 character: $theData = fread($fh, 5).

Ngunit kung kailangan nating makuha ang lahat ng impormasyon na nasa file, kakailanganin natin ang filesize function, na nagbabalik ng bilang ng mga byte sa file, samakatuwid, kung ang resulta ng filesize function ay naipasa sa fread, pagkatapos ay gagawin natin makuha ang lahat ng impormasyon mula sa file:

$myFile = "testFile.txt";

$fh = fopen($myFile, "r");

$theData = fread($fh, filesize ($myFile));

Sana ipinaliwanag ko ito ng malinaw.

$myFile = "testFile.txt";

$fh = fopen($myFile, "r");

$theData = fgets($fh);

Bilang resulta, nakukuha namin ang unang linya mula sa testFile.txt file. Alinsunod dito, upang dumaan sa lahat ng mga linya na kailangan mong gumamit ng foreach loop:

$lines = file("testFile.txt");

foreach($lines bilang $single_line)

echo $single_line . "
n";

Ngayon natutunan mo na kung paano magbukas ng mga file para sa pagbabasa, pagsusulat, o pareho. Sumulat ng data sa kanila o idagdag ang mga ito sa itaas gamit ang Append, at basahin din ang impormasyon mula sa kanila.

Kung natututo kang magtrabaho sa PHP nang mag-isa, mahalagang matutunan kung paano magbasa ng data mula sa isang file at gumawa ng mga pagbabago dito. Ang pag-record sa php file ay isinasagawa para sa pagbuo ng mga web application, mga pagbabago sa impormasyon ng server at paglulunsad ng mga panlabas na programa at pagsasama.

Paano gumana sa mga php file

Kung ang isang file ay may ganoong extension, nangangahulugan ito na naglalaman ito ng program code na nakasulat sa programming language ng parehong pangalan. Upang makagawa ng mga pagbabago, kakailanganin mong i-install ang isa sa mga software editor sa iyong PC:

PHP Expert Editor;
. Dreamweaver;
. Eclipse PHP Development;
. PHPEdit.

Kung lumilikha ka ng isang website, madalas mong kailangang gumamit ng magkatulad na mga disenyo, na maginhawang nakaimbak bilang mga template sa isa pang file. Para sa mga ito ito ay mas mahusay na gamitin isama. Pagkatapos ipasok ang function na ito, kailangan mong isulat ang pangalan at extension ng koneksyon sa php file, halimbawa, isama ang 1.php. Sinusuportahan ng disenyong ito ang maraming pagbabasa ng kasamang file, at ang karagdagang tampok ay ang pagpapatuloy ng pagpapatupad ng code sa kaganapan ng isang error. Kung may mali, ang code ay patuloy na isasagawa mula sa isang bagong linya.
Sa ganitong paraan isasama mo ang file sa iyong code. Ang isa pang paraan ay ang pagpasok ng nangangailangan. Hindi tulad ng isama na inilarawan sa itaas, ang file ay kasama bago magsimulang mag-execute ang program code, ngunit maaari mo itong ma-access nang isang beses lamang.

Pag-verify ng file

Bago ka sumulat sa isang php file, kailangan mong tiyakin na ito ay umiiral, at pagkatapos ay buksan ito at gawin ang kinakailangang pag-edit. Upang gawin ito, maaari mong gamitin ang file_exists() function; kung kinukumpirma nito ang presensya, ang sagot na TRUE ay ibabalik sa window ng editor, kung hindi - FALSE.
Ang isa pang function na is_file() ay makakapag-abiso sa iyo na posibleng magsulat ng data sa isang php file. Ito ay mas maaasahan kaysa sa file_exits, at karamihan sa mga programmer ay gumagamit ng is_file upang makapagsimula. Kapag na-verify mo na ang file, maaari kang magsimulang magtrabaho dito.

Paggawa ng mga pagbabago sa isang file

Ang unang tool na magagamit mo upang gumawa ng mga pagbabago sa isang file ay fwrite(). Nagsusulat ito ng mga linya na may sumusunod na syntax:

Int - manipulator;
. Ang string ay isang variable.

May isa pang function na katulad nito - fputs(), na isang alias. Walang pagkakaiba sa pagitan ng mga tool na ito; maaari kang pumili ng isa o sa isa pa. Para sa mga mag-aaral, ang fwrite ay mas karaniwan, habang ang pagsasanay ng mga programmer ay kadalasang gumagamit ng mga fput.

Upang gumawa ng PHP entry sa isang text file, isang mahalagang kondisyon ang dapat matugunan - dapat itong bukas para sa pag-edit. Ang file na ito ay dapat na matatagpuan sa isang folder na may mga pahintulot sa pagsulat.

Upang gumana, subukan munang magbukas ng isang text na dokumento sa programa, at pagkatapos ay gumawa ng mga pag-edit gamit ang mga regular na tool.

// Magbukas ng text file
$f = fopen("text.txt", "w");
// Sumulat ng isang string ng teksto
fwrite($f, "Hello! Magandang araw!");
// Isara ang text file
fclose($f);

Sa halimbawang ito, ang text.txt ay ang pangalan ng dokumento. Maaari mo itong tawaging iba: “Hello! Magandang araw! - isang halimbawa ng teksto, maaari itong ganap na arbitraryo. Ang lahat ng mga pagbabago ay awtomatikong nai-save sa bukas na file.

Tandaan na ang PHP ay pangkalahatang layunin. Ito ay masinsinang ginagamit upang lumikha ng mga web application. Ang solusyon na ito ay sinusuportahan ng karamihan sa mga provider ng pagho-host. Pinag-uusapan natin ang nangunguna sa mga tool na ginagamit upang lumikha ng mga website. Ngayon alam mo na kung paano sumulat sa isang php file.