Datu bāzes MySQL un Access arvien vairāk kļūst parpieejamie datu uzglabāšanas līdzekļi. Bet 1990.gadu sākumā bija iecienīts strādāt ar failiem PHP, saglabājot ierakstus formatētos teksta failos CSV formātā, atdalot jaunas rindiņas.
Datu bāzes ir ērti, taču katram izstrādātājam tas ir vajadzīgsvismaz ir dažas pamatzināšanas par to, kā lasīt un rakstīt failus. Varbūt daudzi domās par jautājumu: "Kāpēc man tas jāzina?" Ja es izmantoju failus, tie ir rakstīti XML failos, un es tikai izmantoju analizatoru. "
Tātad, šeit ir daži iemesli, kāpēc jums var būt vajadzīgi faili:
Failu lasīšana un rakstīšana ir pamatdarbības.Ja vēlaties lasīt dokumentu, vispirms to jāatver. Pēc tam lasiet pēc iespējas vairāk satura, pēc tam aizveriet failu. Lai rakstītu informāciju dokumentā, vispirms to jāatlasa (vai, iespējams, izveidojiet to, ja tas vēl nav izveidots). Pēc tam ierakstiet vajadzīgos datus un aizveriet to beigās.
Ir arī ērti izmantot iebūvētās funkcijas, kuras automātiski tiek atvērtas un aizvērtas. Tie ir pieejami PHP5. Jums vajadzētu arī iepazīties ar failu atribūtiem, tas ir, ar tā īpašībām.
Viņi var pateikt:
Vislabāk ir iemācīties visus pamata atribūtus darbam ar failiem PHP. Tas ievērojami atvieglos darbu.
Jums var būt jāzina pēdējās faila rediģēšanas laiks. Šajā gadījumā funkcijas nonāk glābšanā: fileatime (), filemtime () un filectime ().
";
echo $ fails. "bija pēdējā i-node maiņa". datums ($ formatDate, $ timeM). "."
";
echo $ fails. "ir mainīts." datums ($ formatDate, $ timeC). "."; ";
Šeit kods izgūst pēdējās piekļuves laika zīmi un parāda to:
Funkcija filectime () rāda laiku, kad tiek mainīta dažāda ar failu saistītā informācija (piemēram, piekļuves tiesības) un filemtime () - maina pašu failu.
Datuma () funkcija tika izmantota, lai formatētu Unix laika zīmi, kas atgriezts ar faila * time () funkcijām.
Lai noskaidrotu, vai tas patiešām darbojas ar failiem PHP, varat izmantot is_file () funkciju vai is_dir (), lai pārbaudītu, vai tas ir direktorijs.
php
echo $ fails. (is_file ($ file)? "": "nav"). "fails." "
echo $ fails. (is_dir ($ file)? "": "nav"). "direktorija.";
Piemērs kods izejas:
Tādējādi jūs varat izvairīties no kļūdām un kļūdaini neatklāt "ne failu". PHP programmā ir līdzīgs darbs ar failiem un direktorijām.
Pirms strādājat ar failu, varat pārbaudīt, vai tas ir lasāms vai rakstāms. Lai to izdarītu, izmantojiet funkcijas is_writable () un is_readable ().
php
echo $ fails. (is_readable ($ file)? "": "nav"). "lasīt." "
echo $ fails. (is_writable ($ file)? "": "nav"). "ir ierakstīts.";
Šīs funkcijas atgriež Boolean vērtību un paskaidro, vai darbību var veikt failā.
Kods ekrānā parāda šādas vērtības:
Trīskāršā operatora izmantošana ļauj norādīt, vai fails ir pieejams.
Lai noskaidrotu faila lielumu, jums jāizmanto funkcija fileize (). Tas tiks parādīts baitos.
php
$ file = "C: Windowsfile.ini"; $ size = fileize ($ file);
echo $ fails. "ir izmērs". $ lielums. "baits.";
Funkcija parādīs sekojošo:
Šeit izmantojiet failu Windows sistēmāuzsver vienu nianšu. Backslash ir īpaša nozīme kā izejas raksturs. Tas būs jāizvairās, pievienojot vēl vienu slīpsvītru.
Ja fails vēl nav izveidots, funkcija fileize () norāda uz nepatiesu un kļūdu. Tāpēc vispirms pārbaudiet failu, lai izveidotu nepieciešamo komandu file_exists ().
php
$ file = "C: Windowsfile.ini"; ja (file_exists ($ file)) {$ size = fileize ($ file);
echo $ fails. "ir izmērs". $ lielums. "baits.";) else {echo $ file. "fails nav atrasts.";}
Fails file_exists () visticamāk jāpārbauda drošībai.
Iepriekšējā sadaļa parāda, cik daudz jūs varat darītUzziniet par failiem, ar kuriem jūs strādājat, pirms sākat lasīt vai rakstīt viņus. Tagad varat izjaukt, kā tiek izlasīts faila saturs.
Funkcijas darbam ar PHP failiem padara uzdevumu vieglāku.Šajā gadījumā jums ir nepieciešams file_get_contents (). Tas izlasīs visu faila saturu mainīgā bez nepieciešamības pašam atvērt vai aizvērt failu. Tas ir ērti, ja rakstīšanas apjoms ir salīdzinoši neliels, jo tūlīt PHP 1 gigaba datu lasīšana arhīvā nav vienmēr racionāla. Darbs ar ".ini" failiem un failu_get_contents () tiek parādīts zemāk.
php
$ file = "c: windowsfile.ini"; $ file1 = file_get_contents ($ file);
echo $ file1;
Lieliem failiem vai vienkārši atkarībā noJūsu skripta vajadzībām tas var būt saprātīgāk apstrādāt detaļas pats. Tas ir saistīts ar faktu, ka, tiklīdz fails tiek atvērts, jūs varat meklēt konkrētu komentāru tajā un lasīt tik daudz datu, cik vēlaties. Fopen () funkcija tiek izmantota, lai atvērtu failu.
php
$ file = "c: windowsfile.ini"; $ file1 = fopen ($ file, "r");
Lai strādātu ar fopen (), jums vajadzīgi divi argumenti:
Funkcija atgriež deskriptoru vai straumi failam, kas tiek saglabāts mainīgajā $ file1. Tas jālieto visos turpmākajos komandos, strādājot ar failu.
Režīms | Jēga | Kursora pozīcija | Ja fails nepastāv? |
p | lasīt tikai | faila sākums | sniegs kļūdu |
in | tikai ierakstīt | faila sākums | izveidot jaunu |
a | tikai ierakstīt | faila beigas | izveidot jaunu |
Lai nolasītu no atvērtā faila vienu rindiņu vienlaikus, varat izmantot funkciju fgets ().
php
$ file = "c: windowsfile.ini"; $ file1 = fopen ($ file, "r");
do {echo fgets ($ file1). "" ";}
kamēr (! feof ($ file1));
fclose ($ file1);
Labs ir labs darbs ar vienlaiduizvēle, lai uzzinātu, cik daudz rindiņu ir failā. Funkcijas feof () pārbauda, vai pabeigšanas fails ir sasniedzis, un cilpa turpinās līdz faila stāvokļa beigām. Pēc lasīšanas beigām fclose () funkcija tiek izmantota dokumenta aizvēršanai.
Divi bieži izmantoti režīmi, rakstot uz failu arizmantojot funkciju fwrite (): "w" un "a". "W" nozīmē to, ko vēlaties rakstīt dokumentā, bet vispirms izdzēsīs jebkuru saturu, "a" - pievienojot jaunus datus tam, kas jau pastāv failā. Jums ir jāpārliecinās, ka tiek izmantota pareizā versija.
Šajā piemērā tiks izmantots raksts "a" režīms.
php
$ myFile = "files.txt"; $ file1 = fopen ($ myFile, "a");
$ izlaide = "banāns". PHP_EOL; fwrite ($ file1, $ output);
$ izlaide = "Ķīna". PHP_EOL;
fwrite ($ file1, $ output);
fclose ($ file1);
Pirmkārt, faila nosaukums tiek piešķirts mainīgajam, pēc tamtas tiek atvērts "a" režīmā, lai to pievienotu. Parādāmie dati tiek piešķirti $ output un fwrite (), un informācija tiek pievienota failam. Process tiek atkārtots, lai pievienotu vēl vienu rindu, pēc tam dokuments tiek aizvērts, izmantojot fclose ().
Iepriekš definētā PHP_EOL konstante pievieno platformai raksturīgu jaunu līniju rakstzīmi, kurā PHP darbojas ar teksta failiem.
Faila saturs pēc iepriekš minētā koda izpildīšanas izskatās šādi:
Var arī izmantot failu_put_contents () funkcijurakstīt failā. Tajā tiek parādīts faila nosaukums, dati, kas jāraksta, un konstante FILE_APPEND, ja tai vajadzētu pievienot datus (pēc noklusējuma tā tiks pārrakstīts faila saturs).
Šeit ir tāds pats piemērs kā iepriekš, bet šoreiz, izmantojot failu_put_contents ().
php
$ myFile = "files.txt";
file_put_contents ($ myFile, "banana." PHP_EOL);
file_put_contents ($ myFile, "Ķīna." PHP_EOL, FILE_APPEND);
Ar šīm funkcijām jums bieži jādarbojas, tāpēc labāk to atcerēties. Turklāt dažkārt tie var strādāt ar PHP failiem, lai atvieglotu dažus sarežģītus uzdevumus.