Ֆայլերի հետ աշխատել php-ով` բացում, գրել, կարդալ: Ինչպես ճիշտ կարդալ ֆայլերը PHP-ի միջոցով Գրել և կարդալ php ֆայլ

Տակ աշխատել ֆայլերի հետ PHP-ումենթադրվում է ֆայլից կարդալԵվ գրել ֆայլինտարբեր տեղեկություններ. Ակնհայտ է, որ դուք պետք է շատ աշխատեք ֆայլերի հետ, ուստի ցանկացած PHP ծրագրավորողպետք է կարողանա կարդալ ֆայլիցԵվ գրել ֆայլին.

Հաջորդականություն աշխատել ֆայլերի հետ PHP-ումսրա նման:

  1. Բացել ֆայլը.
  2. Կատարել անհրաժեշտ գործողությունները.
  3. Փակեք ֆայլը:

Ինչպես տեսնում եք, ֆայլերի հետ աշխատելու հաջորդականությունը նման է սովորական Explorer-ի միջոցով ֆայլերի հետ աշխատելուն: Միայն այստեղ ամբողջ աշխատանքը կատարվում է ինքնաբերաբար մեր կողմից PHP սցենար.

Սկսենք առաջին կետից՝ բացելով ֆայլը։ Ֆայլը բացվում է fopen() ֆունկցիաները. Առաջին պարամետրը ֆայլի ուղին է, իսկ երկրորդը փոփոխիչ. Եկեք անմիջապես նայենք հնարավոր փոփոխիչներին.

  1. ա- բացում է ֆայլը միայն գրելու համար՝ ֆայլի վերջում տեղադրված ցուցիչով:
  2. ա+ ա, բայց ֆայլը բացվում է նաև կարդալու համար։
  3. r- բացում է ֆայլը միայն կարդալու համար, և ցուցիչը դրվում է ֆայլի սկզբի վրա:
  4. r+- նույնը, ինչ փոփոխիչը r, բայց ֆայլը նույնպես բացվում է գրելու համար։
  5. w- բացում է ֆայլը միայն գրելու համար, ցուցիչը դնում է ֆայլի սկզբի վրա և ջնջում ֆայլի ամբողջ բովանդակությունը:
  6. w+- նույնը, ինչ փոփոխիչը w, միայն ֆայլը նույնպես բացվում է կարդալու համար։

Գոյություն ունեն նաև ֆայլերի հետ աշխատելու երկու եղանակ. երկուական(նշվում է բ) Եվ տեքստը(նշվում է տ) Եթե ​​դուք աշխատում եք սովորական տեքստային ֆայլի հետ, ապա ընտրեք տեքստային ռեժիմ, իսկ եթե, օրինակ, պատկերով, ապա ընտրեք երկուական ռեժիմ:

Սրանք բոլոր հիմնական մոդիֆիկատորներն են, որոնք ձեզ համար բավական կլինեն: Այժմ եկեք սովորենք, թե ինչպես փակել ֆայլը: Փակում է ֆայլը fclose() ֆունկցիաները.

Այժմ եկեք անցնենք ֆայլի ընթերցմանը, օգտագործելով fread() ֆունկցիաները. Եվ վերջապես թույլ տվեք ձեզ օրինակ բերել.

$contents = "";
մինչդեռ (!feof($handle))
$բովանդակություն .= fread ($ handle, 4096);
fclose ($ handle);
?>

Այս օրինակում մենք նախ բացում ենք ֆայլը տեքստային ռեժիմում կարդալու համար (փոփոխիչ rt). fopen() ֆունկցիանվերադարձնում է այսպես կոչված նկարագրիչ, որի հետ դուք կարող եք շփվել ֆայլի հետ և գրել այն փոփոխականում բռնակ. Հետո մենք մի օղակի մեջ ենք մինչդեռ ()մինչև ֆայլի ավարտը հասնի, մենք ամեն անգամ կարդում ենք բովանդակությունը 4096 նիշեր, որոնք մենք գրում ենք փոփոխականին բովանդակությունը. Ընթերցանության գործընթացն ավարտվելուց հետո փակեք ֆայլը՝ կրկին օգտագործելով ֆայլի նկարագրիչը:

Այժմ եկեք անցնենք ձայնագրմանը, օգտագործելով fwrite() ֆունկցիաները:

$handle = fopen ("files/a.txt", "at");
$string = "Սա տեքստ է";
fwrite ($ handle, $string);
fclose ($ handle);
?>

Այս սցենարը գործարկելուց հետո ֆայլում a.txtտողը» կավելացվի Սա տեքստ է".

Հատկապես ուշադիր ընթերցողները ուշադրություն դարձրին այն ցուցիչներին, որոնց մասին ես գրել եմ հենց վերևում: Ցուցիչ- սա ֆայլում երևակայական «կուրսորի» ներկայիս դիրքն է: Այստեղից է սկսվում ֆայլի հետ աշխատանքը: Դուք կարող եք փոխել ցուցիչի դիրքը՝ օգտագործելով fseek() ֆունկցիաները:

$handle = fopen("files/a.txt", "rt");
echo $բովանդակություն»:
";
fseek ($ handle, 0, SEEK_SET);
$ բովանդակություն = fread ($ handle, 3);
echo $բովանդակություն»:
";
?>

Այսպիսով, մենք նախ կարդում ենք 3 նիշ (արդյունքում ցուցիչի ներկայիս դիրքը փոխվում է 3 պաշտոններ): Այնուհետև մենք ցուցիչը դրեցինք ֆայլի սկզբում: Եվ մենք նորից կարդում ենք 3 խորհրդանիշ. Ինչպես կարող էիք կռահել, մենք նույն բանը երկու անգամ ենք հաշվել։ Դա առաջին անգամն է 3 խորհրդանիշը, հետո հետ գնաց և նորից հաշվեց 3 խորհրդանիշ. Նաև, եթե դուք fseek() ֆունկցիաներըփոխարինել SEEK_SETվրա SEEK_CUR, ապա երկրորդ պարամետրը չի սահմանի ցուցիչի դիրքը, այլ կփոխի այն ընթացիկ գտնվելու վայրի համեմատ: Ես նույնիսկ խորհուրդ եմ տալիս պարապել ցուցիչներով, քանի որ դա այնքան էլ հեշտ չէ հասկանալ։ Ես նաև խորհուրդ եմ տալիս փորձել ինչ-որ բան գրել ֆայլում ցուցիչի դիրքում, օրինակ, ֆայլի հենց սկզբում: Եվ անպայման բացատրեք ձեր արդյունքները:

Եվ վերջապես, ես կցանկանայի տալ ևս մի քանի գործառույթ, որոնք թույլ են տալիս աշխատել ֆայլերի հետ ամենապարզ մակարդակով. file_put_contens ()Եվ file_get_contents (). Գործառույթ file_put_contents ()գրում է ֆայլում և գործառույթը file_get_contents ()կարդում է բովանդակությունը ֆայլից: Այս գործառույթները շատ հեշտ են օգտագործել, բայց կան ավելի քիչ տարբերակներ (չնայած, որպես կանոն, դրանք անհրաժեշտ չեն).

file_put_contents ("files/a.txt", "Սա տեքստ 2 է");
echo file_get_contents ("files/a.txt");
?>

Այս սցենարում մենք նախ գրեցինք տողը « Սա տեքստ 2 է« ֆայլի վրա, այնուհետև մենք կարդում ենք ստացված բովանդակությունը և թողարկում այն: Ինչպես տեսնում եք, դժվար է ավելի պարզ միջոց գտնել ֆայլից ընթերցումԵվ գրել ֆայլին.

Ահա բոլոր հիմնական կետերը աշխատել ֆայլերի հետ PHP-ում.

MySQL և Access տվյալների բազաները գնալով դառնում են հանրությանը հասանելի տվյալների պահպանման գործիքներ: Սակայն 1990-ականների սկզբին PHP-ով ֆայլերի հետ աշխատելը տարածված էր՝ պահպանելով գրառումները CSV ֆորմատավորված տեքստային ֆայլերում՝ առանձնացված նոր տողերով:

Գործողության հիմնական սկզբունքները

Տվյալների բազաները հարմար են, բայց յուրաքանչյուր ծրագրավորող պետք է գոնե որոշ հիմնական գիտելիքներ ունենա ֆայլեր կարդալու և գրելու մասին: Շատերը կարող են մտածել այն հարցի շուրջ. «Ինչո՞ւ ես պետք է դա իմանամ: Եթե ​​ես օգտագործում եմ ֆայլեր, դրանք գրված են XML-ով, և ես պարզապես օգտագործում եմ վերլուծիչը»:

Այսպիսով, ահա մի քանի պատճառ, թե ինչու ձեզ կարող են անհրաժեշտ լինել ֆայլեր.

  1. Երկուական տվյալները (օրինակ՝ պատկերային ֆայլերը) BLOB (երկուական մեծ օբյեկտ) տվյալների բազա տեղափոխելու համար:
  2. Ներմուծեք տվյալները (օրինակ՝ էլփոստի հասցեները), որոնք արտահանվում են հին տվյալների բազայից կամ հավելվածից:
  3. Տվյալների բազայից տեքստային ֆայլ արտահանելու համար՝ օֆլայն մշակման համար:

Ֆայլեր կարդալը և գրելը հիմնական գործողություններ են: Եթե ​​Ձեզ անհրաժեշտ է փաստաթուղթ կարդալ, նախ պետք է բացել այն: Դրանից հետո դուք պետք է հնարավորինս շատ բովանդակություն կարդացեք, ապա փակեք ֆայլը: Փաստաթղթում տեղեկատվություն գրելու համար նախ պետք է բացեք այն (կամ գուցե ստեղծեք այն, եթե այն դեռ չի ստեղծվել): Դրանից հետո գրանցեք անհրաժեշտ տվյալները և ավարտին փակեք այն:

Հարմար է նաև օգտագործել ներկառուցված գործառույթները, որոնք ավտոմատ կերպով բացվում և փակվում են: Դրանք հասանելի են PHP5-ում: Դուք նաև պետք է ծանոթանաք ֆայլի ատրիբուտներին, այսինքն՝ դրա հատկություններին:

Նրանք կարող են ասել.

  • չափի մասին;
  • տեղեկատվություն տրամադրել վերջին անգամ իր հետ կապ հաստատելու մասին.
  • պատմել սեփականատիրոջ մասին և այլն:

Ավելի լավ է սովորել PHP-ում ֆայլերի հետ աշխատելու բոլոր հիմնական հատկանիշները: Սա շատ կհեշտացնի աշխատանքը։

Ֆայլի պատմություն

Ձեզ կարող է անհրաժեշտ լինել պարզել, թե երբ է ֆայլը վերջին անգամ խմբագրվել: Այս դեպքում օգնության են հասնում fileatime(), filemtime() և filectime() ֆունկցիաները։

"; echo $file . " had last modified i-node " . date($formatDate, $timeM) . ":
"; echo $file . " փոփոխվել է " . date($formatDate, $timeC) . ".";

Ահա այն կոդը, որը առբերում է մուտքի վերջին ժամադրոշմը և ցուցադրում այն.

  • C: Windowsfile.ini-ն մուտք է գործել 2018 թվականի սեպտեմբերի 19-ին, 16:34-ին:
  • C: Windowsfile.ini-ն փոփոխվել է 2018 թվականի հոկտեմբերի 8-ին, ժամը 2:03-ին:
  • C: Windowsfil.ini-ը փոփոխվել է 2017 թվականի դեկտեմբերի 16-ին, առավոտյան 4:34-ին:

Filectime() ֆունկցիան ցույց է տալիս ֆայլի հետ կապված տարբեր տեղեկատվության փոփոխման ժամանակը (օրինակ՝ թույլտվությունները), իսկ filemtime()-ը ցույց է տալիս բուն ֆայլի փոփոխության ժամանակը:

Date() ֆունկցիան օգտագործվել է file*time() ֆունկցիաների կողմից վերադարձված Unix ժամադրոշմը ձևաչափելու համար:

Ֆայլ, թե ոչ:

Պարզելու համար, թե արդյոք ֆայլերի մանիպուլյացիա իրականում տեղի է ունենում PHP-ում, կարող եք օգտագործել is_file() ֆունկցիան կամ is_dir() ֆունկցիան՝ ստուգելու, թե արդյոք այն գրացուցակ է:

"; echo $file . (is_dir($file) ? " " : "ոչ") . " directory.";

Կոդի ելքի օրինակ.

  • C: Windowsfile.ini ֆայլ:
  • C: Windowsfile.ini-ն գրացուցակ չէ:

Այսպիսով, դուք կարող եք խուսափել սխալներից և անփութությամբ չբացել «ոչ ֆայլ»: PHP-ում ֆայլերի և գրացուցակների հետ աշխատելը նման է:

Ֆայլի թույլտվություններ

Նախքան ֆայլի հետ աշխատելը, կարող եք ստուգել՝ արդյոք այն ընթեռնելի է, թե գրի։ Դա անելու համար անհրաժեշտ է օգտագործել is_writable() և is_readable() ֆունկցիաները:

"; echo $file . (is_writable($file) ? " " : "ոչ") . " գրված է։";

Այս գործառույթները վերադարձնում են բուլյան արժեք և բացատրում, թե արդյոք գործողությունը կարող է իրականացվել ֆայլի վրա:

Կոդը էկրանին դուրս կբերի հետևյալ արժեքները.

  • C: Windowsfile.ini-ն ընթերցվում է:
  • C: Windowsfile.ini-ն գրված չէ:

Օգտագործելով եռակի օպերատորը, կարող եք նշել, արդյոք ֆայլը հասանելի է, թե ոչ:

Ֆայլի չափ

Ֆայլի չափը պարզելու համար անհրաժեշտ է օգտագործել filesize() ֆունկցիան։ Այն կցուցադրվի բայթերով:

Գործառույթը կցուցադրի հետևյալը.

  • C: Windowsfile.ini-ի չափը 510 բայթ է:

Windows համակարգում ֆայլի օգտագործումը այստեղ կարևորում է մեկ կետ: Հետադարձ շեղը հատուկ նշանակություն ունի որպես փախուստի կերպար: Դուք պետք է փախչեք դրանից՝ ավելացնելով ևս մեկ հակադարձ շեղ:

Եթե ​​ֆայլը դեռ չի ստեղծվել, fileize() ֆունկցիան կհայտնի False-ի և սխալի մասին: Հետևաբար, նրանք նախ ստուգում են ֆայլը՝ անհրաժեշտ file_exists() հրամանի առկայության համար։

Անվտանգության համար գրեթե միշտ պետք է միացված լինի file_exists() ստուգումը:

Ֆայլերի ընթերցում

Նախորդ բաժինը ցույց տվեց, թե որքան կարող եք իմանալ այն ֆայլերի մասին, որոնց հետ աշխատում եք, նախքան սկսեք կարդալ կամ գրել նրանց: Այժմ դուք կարող եք պարզել, թե ինչպես է ընթերցվում ֆայլի բովանդակությունը:

PHP ֆայլերի հետ աշխատելու գործառույթները հեշտացնում են ամեն ինչ: Այս դեպքում ձեզ անհրաժեշտ կլինի file_get_contents(): Այն կկարդա ֆայլի ամբողջ բովանդակությունը փոփոխականի մեջ՝ առանց ինքներդ բացելու կամ փակելու ֆայլը: Սա հարմար է, երբ ձայնագրման ծավալը համեմատաբար փոքր է, քանի որ 1 ԳԲ տվյալների անմիջապես արխիվ կարդալը միշտ չէ, որ ռացիոնալ է PHP-ում: «.ini» ֆայլերի և file_get_contents() ֆունկցիայի հետ աշխատելը ներկայացված է ստորև:

Ավելի մեծ ֆայլերի համար, կամ պարզապես կախված ձեր սցենարի կարիքներից, կարող է ավելի իմաստալից լինել ինքներդ կարգավորել մանրամասները: Դա պայմանավորված է նրանով, որ երբ ֆայլը բացվի, դուք կարող եք որոնել այն հատուկ նշում և կարդալ այնքան տվյալներ, որքան ցանկանում եք: Fopen() ֆունկցիան օգտագործվում է ֆայլ բացելու համար։

Fopen() ֆունկցիան պահանջում է երկու արգումենտ.

  • բացվող ֆայլը;
  • Այս դեպքում օգտագործվող ռեժիմը «r» է կարդալու համար:

Ֆունկցիան վերադարձնում է բռնակ կամ հոսք ֆայլ, որը պահվում է $file1 փոփոխականում: Այն պետք է օգտագործվի բոլոր հետագա հրամաններում ֆայլի հետ աշխատելիս:

Բաց ֆայլից մեկ տող կարդալու համար կարող եք օգտագործել fgets() ֆունկցիան։

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

Do-while հանգույցի օգտագործումը լավ ընտրություն է՝ նախապես պարզելու համար, թե քանի տող կա ֆայլում: Feof() ֆունկցիան ստուգում է, թե արդյոք ֆայլը հասել է ավարտին, և հանգույցը շարունակվում է մինչև ֆայլի վիճակի ավարտը հասնի: Ընթերցանության ավարտից հետո fclose() ֆունկցիան օգտագործվում է փաստաթուղթը փակելու համար:

Ֆայլերի ձայնագրում

Fwrite() ֆունկցիայի միջոցով ֆայլի վրա գրելու ժամանակ սովորաբար օգտագործվող երկու ռեժիմներն են «w» և «a»: «W» նշանակում է, թե ինչ պետք է գրվի փաստաթղթում, բայց այն նախ կջնջի ցանկացած բովանդակություն, «ա»-ն նշանակում է նոր տվյալներ ավելացնելու այն, ինչ արդեն կա ֆայլում: Դուք պետք է վստահ լինեք, որ ճիշտ տարբերակը օգտագործվում է:

Հետևյալ օրինակը կօգտագործի «a» ձայնագրման ռեժիմը:

Սկզբում ֆայլի անունը վերագրվում է փոփոխականին, այնուհետև այն բացվում է «a» ռեժիմով՝ հավելվածի համար։ Գրելու ենթակա տվյալները վերագրվում են $output փոփոխականին և fwrite(), իսկ տեղեկատվությունը ավելացվում է ֆայլին։ Գործընթացը կրկնվում է ևս մեկ տող ավելացնելու համար, այնուհետև փաստաթուղթը փակվում է՝ օգտագործելով fclose():

Նախապես սահմանված PHP_EOL հաստատունն ավելացնում է նոր տողի նիշ, որը հատուկ է հարթակին, որի վրա PHP-ն աշխատում է տեքստային ֆայլերով:

Ֆայլի բովանդակությունը վերը նշված կոդը գործարկելուց հետո պետք է նման լինի.

  • բանան;
  • Չինաստան.

File_put_contents() ֆունկցիան կարող է նաև գրել ֆայլ: Այն վերցնում է ֆայլի անունը, գրվող տվյալները և FILE_APPEND հաստատունը, եթե այն պետք է հավելի տվյալներ (կվերագրի ֆայլի լռելյայն բովանդակությունը):

Ահա նույն օրինակը, ինչ վերևում, բայց այս անգամ օգտագործելով file_put_contents():

Դուք պետք է հաճախ աշխատեք այս գործառույթների հետ, ուստի ավելի լավ է հիշեք դրանք: Բացի այդ, նրանք մի օր կարող են հեշտացնել որոշ բարդ առաջադրանքներ PHP ֆայլերի հետ աշխատելիս:

Վերջին թարմացումը՝ 1/11/2015

Ինչպես ծրագրավորման լեզուներից շատերը, PHP-ն աջակցում է աշխատել ֆայլերի հետ, որոնք տեղեկատվության պահպանման միջոցներից մեկն են:

Ֆայլեր կարդալ և գրել

Ֆայլերի բացում և փակում

PHP-ում ֆայլեր բացելու համար սահմանված է fopen() ֆունկցիան։ Այն ունի հետևյալ սահմանումը. ռեսուրս fopen (string $filename, string $mode) . Առաջին $filename պարամետրը ներկայացնում է դեպի ֆայլ տանող ուղին, իսկ երկրորդը բացման ռեժիմն է։ Կախված բացման նպատակից և ֆայլի տեսակից, այս պարամետրը կարող է վերցնել հետևյալ արժեքները.

    "r": Ֆայլը բացվում է միայն կարդալու համար: Եթե ​​ֆայլը գոյություն չունի, վերադարձնում է false

    «r+»: ֆայլը բացվում է միայն կարդալու և գրելու համար: Եթե ​​ֆայլը գոյություն չունի, վերադարձնում է false

    "w": Ֆայլը բացվում է գրելու համար: Եթե ​​նման ֆայլ արդեն կա, ապա այն վերագրվում է, եթե ոչ, ապա ստեղծվում է։

    «w+»: ֆայլը բացված է գրելու և ընթեռնելի: Եթե ​​նման ֆայլ արդեն կա, ապա այն վերագրվում է, եթե ոչ, ապա ստեղծվում է։

    "a" : Ֆայլը բացվում է գրելու համար: Եթե ​​նման ֆայլ արդեն կա, ապա տվյալները գրվում են ֆայլի վերջում, իսկ հին տվյալները մնում են։ Եթե ​​ֆայլը գոյություն չունի, այն ստեղծվում է

    "a+": Ֆայլը բացվում է կարդալու և գրելու համար: Եթե ​​ֆայլն արդեն գոյություն ունի, ապա տվյալները կցվում են ֆայլի վերջում: Եթե ​​ֆայլը գոյություն չունի, այն ստեղծվում է

Fopen ֆունկցիայի արդյունքը կլինի ֆայլի նկարագրիչ: Այս բռնակը օգտագործվում է ֆայլի գործառնությունների և ֆայլը փակելու համար:

Աշխատանքն ավարտելուց հետո ֆայլը պետք է փակվի՝ օգտագործելով fclose() ֆունկցիան, որը որպես պարամետր վերցնում է ֆայլի նկարագրիչը։ Օրինակ, եկեք բացենք և փակենք ֆայլը.

$fd = fopen ("form.php", "r") կամ die ("չհաջողվեց բացել ֆայլը"); fclose ($fd);

or die («սխալի տեքստ») կառուցվածքը թույլ է տալիս սկրիպտին դադարեցնել գործարկումը և ցուցադրել որոշ սխալի հաղորդագրություն, եթե fopen ֆունկցիան չկարողացավ բացել ֆայլը:

Ֆայլի ընթերցում

Ֆայլը կարդալու համար կարող եք օգտագործել մի քանի գործառույթ: Տող առ տող կարդալու համար օգտագործվում է fgets() ֆունկցիան, որը ստանում է ֆայլի նկարագրիչ և վերադարձնում մեկ տող կարդացված։ Եկեք անցնենք ամբողջ ֆայլը տող առ տող.

Ամեն անգամ, երբ fgets()-ը կանչվում է, PHP-ն ցուցիչը կտեղադրի ընթերցված տողի վերջում: Ֆայլի ավարտին հետևելու համար օգտագործվում է feof() ֆունկցիան, որը վերադարձնում է true, երբ ֆայլն ավարտվում է: Եվ քանի դեռ ֆայլի ավարտը չի հասել, մենք կարող ենք օգտագործել fgets() ֆունկցիան։

Ամբողջ ֆայլը կարդալը

Այս դեպքում մենք պարտավոր չենք բացահայտորեն բացել ֆայլը, ձեռք բերել բռնակ, ապա փակել ֆայլը:

Արգելափակել ընթերցումը

Կարող եք նաև կատարել բլոկ առ բլոկ ընթերցում, այսինքն՝ կարդալ որոշակի քանակությամբ բայթ ֆայլից՝ օգտագործելով fread() ֆունկցիան.

Fread() ֆունկցիան ընդունում է երկու պարամետր՝ կարդալու համար նախատեսված ֆայլի բռնիչը և կարդալու համար նախատեսված բայթերի քանակը: Երբ բլոկը կարդացվում է, ֆայլի ցուցիչը տեղափոխվում է այդ բլոկի վերջ: Եվ նաև օգտագործելով feof() ֆունկցիան, կարող եք հետևել ֆայլի ավարտին:

Գրեք ֆայլ

Ֆայլ գրելու համար օգտագործեք fwrite() ֆունկցիան, որը ֆայլում գրում է հետևյալ տողը.

Մեկ այլ fputs() ֆունկցիա նույն կերպ է աշխատում.

Աշխատեք ֆայլի ցուցիչի հետ

«w» ռեժիմով կարդալու կամ գրելու համար ֆայլ բացելիս սկզբում տեղադրվում է ֆայլի ցուցիչը։ Տվյալները կարդալիս PHP-ն ֆայլի ցուցիչը տեղափոխում է ընթերցված տվյալների բլոկի վերջ: Այնուամենայնիվ, մենք կարող ենք նաև ձեռքով կառավարել ցուցիչը ֆայլում և տեղադրել այն կամայական վայրում: Դա անելու համար դուք պետք է օգտագործեք գործառույթը fseek, որն ունի հետևյալ պաշտոնական սահմանումը.

Int fseek (ռեսուրս $handle, int $offset [, int $whence = SEEK_SET ])

$handle պարամետրը ներկայացնում է ֆայլի բռնակ: $offset պարամետրը բայթերով շեղումն է ֆայլի սկզբի համեմատ, որտեղից կսկսվի ընթերցումը/գրելը: Երրորդ կամընտիր պարամետրը նշում է, թե ինչպես է սահմանվում օֆսեթը: Այն կարող է վերցնել երեք արժեք.

    SEEK_SET. լռելյայն արժեք, սահմանում է օֆսեթ բայթերով օֆսեթ՝ ֆայլի սկզբի համեմատ

    SEEK_CUR. սահմանում է օֆսեթ բայթերով ֆայլի ընթացիկ դիրքի սկզբի համեմատ

    SEEK_END . սահմանում է օֆսեթը, որպեսզի ֆայլի վերջից բայթերը փոխվեն

Եթե ​​ցուցիչը հաջողությամբ տեղադրվի, fseek() ֆունկցիան վերադարձնում է 0, իսկ եթե ցուցիչը անհաջող է, վերադարձնում է -1:

Գործառույթի օգտագործման օրինակ.

$fd = fopen ("hello.txt", "w+") կամ die ("չհաջողվեց բացել ֆայլը"); $str = "Բարև աշխարհ!"; // տող՝ fwrite գրելու համար ($fd, $str); // գրել տողը սկզբում fseek ($fd, 0); // տեղադրեք ֆայլի ցուցիչը սկզբում fwrite ($fd, «Oink»); // գրել տողը սկզբում fseek($fd, 0, SEEK_END); // տեղադրեք ցուցիչը fwrite վերջում ($fd, $str); // գրեք ևս մեկ տող fclose($fd) վերջում;

Եվ հիմա կլինի բավականին մեծ, բայց ոչ բարդ դաս PHP-ում ֆայլերի հետ աշխատելու մասին: Նախ, ինչի համար են ֆայլերը: Ի վերջո, դուք կարող եք ամեն ինչ պահել MySQL կամ PostgreSQL կամ որևէ այլ տվյալների բազայում: Բայց երբեմն կան առաջադրանքներ, երբ տվյալների բազայի օգտագործումը, բոլոր մշակումներով և կապի անվտանգության մտահոգությամբ, նպատակահարմար չէ: Օրինակ, պետք է սովորական հաշվիչ սարքենք, բայց մինչ այս նախագծում տվյալների բազա չէինք օգտագործում։ Այսպիսով, հանուն մեկ փոքրիկ հաշվիչի, մենք պե՞տք է ստեղծենք տվյալների բազա և պահենք ընդամենը մի քանի տող դրանում: Այստեղ շատ ավելի հեշտ է օգտագործել ֆայլերը: Բացի այդ, երբեմն հոսթինգն ընդհանրապես չի աջակցում տվյալների բազաներին, ապա ֆայլերը հիմնականում միակ տարբերակն են:

Դե, ասենք, ես ձեզ համոզեցի, որ ֆայլերը անհրաժեշտ են :) Հիմա եկեք պարզենք, թե ինչպես աշխատել դրանց հետ: Ինչպես ստեղծել, բացել, գրել, վերագրել, կարդալ և այլն: Առաջին բաները նախ.

Ստեղծեք ֆայլ

PHP-ն օգտագործում է fopen ֆունկցիան ֆայլեր բացելու համար: Այնուամենայնիվ, այն կարող է նաև ֆայլեր ստեղծել: Եթե ​​դուք փոխանցեք fopen ֆայլի անուն, որը գոյություն չունի, այն կստեղծի այն:

Fopen ֆունկցիան ինքնին ընդունում է երկու պարամետր, որոնցից երկուսն էլ պարտադիր են: Նախ, մենք պետք է նշենք այն ֆայլի անունը, որը ցանկանում ենք բացել: Երկրորդ՝ փոխանցեք մի պարամետր, որը գործառույթին ասում է, թե ինչ ենք նախատեսում անել այս ֆայլի հետ (օրինակ՝ ֆայլից կարդալ, գրել և այլն):

Եթե ​​մեզ անհրաժեշտ է ստեղծել ֆայլ, ապա մենք նշում ենք դրա անունը և փոխանցում այն ​​պարամետրը, որը ցանկանում ենք գրել տվյալներ: Նշում. Մենք պետք է անպայման տեղեկացնենք PHP-ին, թե ինչ ենք գրում ֆայլում, հակառակ դեպքում այն ​​նոր ֆայլ չի ստեղծի:

Օրինակ:

$ourFileName = "testFile.txt";

$ourFileHandle = fopen ($ourFileName, «w») կամ die («չի կարող բացել ֆայլը»);

fclose ($ourFileHandle);

$ourFileName = testFile.txt առաջին տողը ստեղծում է տողային փոփոխական, որտեղ մենք կպահենք ֆայլի անունը:

Երկրորդ տողը $ourFileHandle = fopen ($ourFileName, «w») կամ die («չի կարող բացել ֆայլը») համապատասխանաբար ստեղծում կամ բացում է գոյություն ունեցող ֆայլ գրելու համար: Կամ վերադարձնում է հաղորդագրություն, որ չի կարող բացել ֆայլը:

fclose($ourFileHandle) երրորդ տողը փակում է ֆայլը: Դա իրականում պարզ է:

Ֆայլի բացման ընտրանքներ php-ում

Առաջին պարամետրը «r» (կարդալու) - բացում է ֆայլը միայն կարդալու համար, դուք չեք կարող գրել դրան:

Երկրորդ պարամետրը «w» (գրել) – բացվում է գրելու համար: Այս դեպքում ձայնագրությունը միշտ կգնա ֆայլի սկզբից: Եթե ​​այնտեղ արդեն ինչ-որ տեղեկություն կա, այն կվերագրվի:

Երրորդ պարամետրը «a» (հավելել) - բացում է ֆայլը գրելու համար, բայց կկցվի ֆայլի վերջում՝ ի տարբերություն w-ի:

Հավելյալ հնարավորություններ:

«r+» պարամետր - բացվում է և՛ կարդալու, և՛ գրելու համար: Ցուցիչը կլինի ֆայլի սկզբում:

«w+» պարամետր - բացվում է և՛ կարդալու, և՛ գրելու համար, ԲԱՅՑ ջնջում է ֆայլում եղած բոլոր տեղեկությունները!!!

«a+» պարամետր - բացվում է կարդալու և գրելու համար, բայց ցուցիչը կլինի ֆայլի վերջում:

Բնականաբար, այս պարամետրերից միայն մեկը կարող է փոխանցվել ֆունկցիայի, և ոչ մի քանիսը: Նրանք պետք է փոխարինվեն «X»-ով.

fopen ($ourFileName, «X»)

Գրեք ֆայլին

Դե, հիմա մենք բացել ենք ֆայլը, ընտրել ենք մեզ անհրաժեշտ պարամետրը, իսկ հետո՞: Դրա մեջ պետք է ինչ-որ բան գրել: Ինչպե՞ս դա անել: Օգտագործելով fwrite ֆունկցիան, որը որպես պարամետրեր վերցնում է ֆայլի ցուցիչը և տեքստի տողը, որը մենք ցանկանում ենք գրել: Օրինակ:

$myFile = "testFile.txt";

$fh = fopen ($myFile, «w») կամ die («չի կարող բացել ֆայլը»);

$stringData = «Առաջին տող»;

fwrite ($ fh, $stringData);

$stringData = "Երկրորդ տող";

fwrite ($ fh, $stringData);

Մենք ստեղծել ենք testFile.txt ֆայլ, որի ցուցիչը պահվում է $fn փոփոխականում։ Մենք դրա մեջ գրեցինք «Առաջին տող» տողը (վերջում օգտագործեցինք տողի վերջի նշանը n), այնուհետև «Երկրորդ տող»: Հետո փակեցին թղթապանակը։

ՈՒՇԱԴՐՈՒԹՅՈՒՆ. Երբեք մի մոռացեք փակել ձեր ֆայլերը: Հակառակ դեպքում, եթե սցենարի կատարումը աննորմալ կերպով ավարտվի, ֆայլերի տվյալները չեն պահպանվի: Միշտ օգտագործեք fclose աշխատանքից հետո!!!

Ընթերցանություն ֆայլից

Մենք գրել ենք, հիմա եկեք կարդանք: Դա նույնպես այնքան էլ դժվար չէ։ Մենք օգտագործում ենք fread ֆունկցիան։ Որպես մուտքագրում մենք նրան տալիս ենք ցուցիչ ֆայլին և այն բայթերի քանակին, որոնք ցանկանում ենք կարդալ: Օրինակ՝ մեկ նիշը հավասար է մեկ բայթի (կախված կոդավորումից), մենք ուզում ենք կարդալ 5 նիշ՝ $theData = fread($fh, 5)։

Բայց եթե մենք պետք է ստանանք ամբողջ տեղեկատվությունը, որը գտնվում է ֆայլում, ապա մեզ անհրաժեշտ է filesize ֆունկցիան, որը վերադարձնում է ֆայլի բայթերի քանակը, հետևաբար, եթե ֆայլի չափի ֆունկցիայի արդյունքը փոխանցվի fread, ապա մենք կստանանք. ամբողջ տեղեկատվությունը ֆայլից.

$myFile = "testFile.txt";

$fh = fopen ($myFile, «r»);

$theData = fread ($fh, ֆայլի չափ ($myFile));

Հուսով եմ, որ պարզ բացատրեցի:

$myFile = "testFile.txt";

$fh = fopen ($myFile, «r»);

$theData = fgets ($fh);

Արդյունքում մենք ստանում ենք առաջին տողը testFile.txt ֆայլից: Համապատասխանաբար, բոլոր տողերը անցնելու համար անհրաժեշտ է օգտագործել foreach հանգույց.

$lines = ֆայլ ("testFile.txt");

foreach ($ տող որպես $single_line)

echo $single_line . «
n";

Այժմ դուք սովորել եք, թե ինչպես բացել ֆայլեր կարդալու, գրելու կամ երկուսի համար: Գրեք նրանց տվյալները կամ ավելացրեք դրանք վերևում՝ օգտագործելով Append-ը, ինչպես նաև կարդացեք դրանցից տեղեկատվությունը:

Եթե ​​դուք սովորում եք ինքնուրույն աշխատել PHP-ի հետ, ապա կարևոր է սովորել, թե ինչպես կարդալ տվյալներ ֆայլից և փոփոխություններ կատարել դրանում: php ֆայլում ձայնագրումն իրականացվում է վեբ հավելվածների մշակման, սերվերի տեղեկատվության փոփոխությունների և արտաքին ծրագրերի և ընդգրկումների գործարկման համար:

Ինչպես աշխատել php ֆայլերի հետ

Եթե ​​ֆայլն ունի նման ընդլայնում, նշանակում է այն պարունակում է ծրագրի կոդ՝ գրված նույն անունով ծրագրավորման լեզվով։ Փոփոխություններ անելու համար հարկավոր է ձեր համակարգչի վրա տեղադրել ծրագրային խմբագիրներից մեկը.

PHP փորձագետի խմբագիր;
. Dreamweaver;
. Eclipse PHP մշակում;
. PHPE խմբագրել.

Եթե ​​դուք ստեղծում եք կայք, ապա ձեզ հաճախ անհրաժեշտ է օգտագործել նույնական դիզայն, որոնք հարմար պահվում են որպես ձևանմուշներ մեկ այլ ֆայլում: Դրա համար ավելի լավ է օգտագործել ներառել. Այս ֆունկցիան մուտքագրելուց հետո պետք է php ֆայլում գրել կապի անվանումը և ընդլայնումը, օրինակ՝ ներառել 1.php: Այս դիզայնը աջակցում է ներառված ֆայլի բազմակի ընթերցումներ, և լրացուցիչ առանձնահատկություն է կոդի կատարման շարունակականությունը սխալի դեպքում: Եթե ​​ինչ-որ բան սխալ է, կոդը կշարունակի գործել նոր տողից:
Այս կերպ դուք կներառեք ֆայլը ձեր կոդի մեջ: Մեկ այլ միջոց է մուտքագրել պահանջել. Ի տարբերություն վերը նկարագրված ներառի, ֆայլը ներառված է նախքան ծրագրի կոդը սկսելը, բայց դուք կարող եք մուտք գործել միայն մեկ անգամ:

Ֆայլի ստուգում

Նախքան php ֆայլում գրելը, դուք պետք է համոզվեք, որ այն գոյություն ունի, այնուհետև բացեք այն և կատարեք անհրաժեշտ խմբագրումը: Դա անելու համար կարող եք օգտագործել file_exists() ֆունկցիան, եթե այն հաստատում է ներկայությունը, ապա TRUE պատասխանը կվերադարձվի խմբագրի պատուհանում, հակառակ դեպքում՝ FALSE:
Մեկ այլ գործառույթ is_file() կարող է տեղեկացնել ձեզ, որ հնարավոր է տվյալներ գրել php ֆայլում: Այն ավելի հուսալի է, քան file_exits-ը, և ծրագրավորողների մեծամասնությունը սկսելու համար օգտագործում է is_file-ը: Երբ հաստատեք, որ ֆայլը գոյություն ունի, կարող եք սկսել աշխատել դրա հետ:

Փոփոխություններ կատարել ֆայլում

Առաջին գործիքը, որը կարող եք օգտագործել ֆայլում փոփոխություններ կատարելու համար, fwrite(): Այն գրում է տողեր հետևյալ շարահյուսությամբ.

Int - մանիպուլյատոր;
. Տողը փոփոխական է:

Կա սրա նման մեկ այլ ֆունկցիա՝ fputs(), որը մականուն է: Այս գործիքների միջև տարբերություն չկա, դուք կարող եք ընտրել մեկը կամ մյուսը: Ուսանողների համար fwrite-ն ավելի տարածված է, մինչդեռ պրակտիկ ծրագրավորողները ամենից հաճախ օգտագործում են fputs:

Տեքստային ֆայլի մեջ PHP մուտքագրելու համար պետք է կատարվի մեկ կարևոր պայման՝ այն պետք է բաց լինի խմբագրման համար։ Այս ֆայլը պետք է գտնվի գրելու թույլտվություններ ունեցող թղթապանակում:

Աշխատելու համար փորձեք նախ բացել տեքստային փաստաթուղթ ծրագրում, այնուհետև խմբագրումներ կատարել՝ օգտագործելով սովորական գործիքներ:

// Բացեք տեքստային ֆայլ
$f = fopen ("text.txt", "w");
// Գրել տեքստի տող
fwrite ($f, «Բարև, բարի օր!»);
// Փակել տեքստային ֆայլը
fclose ($f);

Այս օրինակում text.txt-ը փաստաթղթի անվանումն է: Դուք կարող եք այն այլ կերպ անվանել. «Բարև: Լավ օր! - տեքստի օրինակ, այն կարող է լինել ամբողջովին կամայական: Բոլոր փոփոխությունները ավտոմատ կերպով պահվում են բաց ֆայլում:

Նկատի ունեցեք, որ PHP-ն ընդհանուր նպատակային է: Այն ինտենսիվորեն օգտագործվում է վեբ հավելվածներ ստեղծելու համար։ Այս լուծումը աջակցվում է հոստինգի մատակարարների մեծ մասի կողմից: Խոսքը գործիքների շարքում առաջատարի մասին է, որոնք օգտագործվում են կայքեր ստեղծելու համար։ Այժմ դուք գիտեք, թե ինչպես գրել php ֆայլ: