PHP da fayllar bilan ishlash: ochish, yozish, o'qish. PHP yordamida fayllarni qanday qilib to'g'ri o'qish kerak PHP faylini yozish va o'qish

ostida PHP da fayllar bilan ishlash nazarda tutilgan fayldan o'qish Va faylga yozish turli ma'lumotlar. Ko'rinib turibdiki, siz fayllar bilan juda ko'p ishlashingiz kerak, shuning uchun har qanday PHP dasturchisi qodir bo'lishi kerak fayldan o'qish Va faylga yozish.

Keyingi ketma-ketlik PHP da fayllar bilan ishlash shunga o'xshash:

  1. Faylni ochish.
  2. Kerakli harakatlarni bajaring.
  3. Faylni yoping.

Ko'rib turganingizdek, fayllar bilan ishlash ketma-ketligi oddiy Explorer orqali fayllar bilan ishlashga o'xshaydi. Faqat bu erda barcha ishlar o'zimiz tomonidan avtomatik ravishda amalga oshiriladi PHP skripti.

Birinchi nuqtadan boshlaylik - faylni ochish. Fayl bilan ochiladi fopen() funktsiyalari. Birinchi parametr fayl yo'li, ikkinchi parametr esa modifikator. Keling, darhol mumkin bo'lgan modifikatorlarni ko'rib chiqaylik:

  1. a- faylni faqat yozish uchun ochadi, bunda ko‘rsatgich fayl oxiriga qo‘yiladi.
  2. a+ a, lekin fayl o'qish uchun ham ochiladi.
  3. r- faylni faqat o'qish uchun ochadi va ko'rsatkich fayl boshiga o'rnatiladi.
  4. r+- modifikator bilan bir xil r, lekin fayl yozish uchun ham ochiladi.
  5. w- faylni faqat yozish uchun ochadi, ko'rsatgichni fayl boshiga o'rnatadi va faylning butun tarkibini o'chiradi.
  6. w+- modifikator bilan bir xil w, faqat fayl ham o'qish uchun ochiladi.

Bundan tashqari, fayllar bilan ishlashning ikkita rejimi mavjud: ikkilik(belgilangan b) Va matn(belgilangan t). Agar siz oddiy matn fayli bilan ishlayotgan bo'lsangiz, matn rejimini tanlang va agar, masalan, rasm bilan bo'lsa, ikkilik rejimni tanlang.

Bularning barchasi siz uchun etarli bo'lgan asosiy modifikatorlardir. Endi faylni qanday yopishni bilib olaylik. bilan faylni yopadi fclose() funktsiyalari.

Endi faylni foydalanib o'qishga o'tamiz fread() funktsiyalari. Va nihoyat, sizga bir misol keltiraman:

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

Ushbu misolda biz birinchi navbatda matn rejimida o'qish uchun faylni ochamiz (modifier rt). fopen() funktsiyasi deb atalmishni qaytaradi tavsiflovchi, uning yordamida siz fayl bilan bog'lanishingiz va uni o'zgaruvchiga yozishingiz mumkin tutqich. Keyin biz halqaga tushamiz while() faylning oxirigacha, biz har safar mazmunini o'qiymiz 4096 o'zgaruvchiga yozadigan belgilar tarkibi. O'qish jarayoni tugagandan so'ng, fayl identifikatoridan foydalanib yana faylni yoping.

Endi foydalanib yozishga o'tamiz fwrite() funktsiyalari:

$handle = fopen("files/a.txt", "at");
$string = "Bu matn";
fwrite($dastasi, $string);
fclose($dastasi);
?>

Ushbu skriptni ishga tushirgandan so'ng, faylda a.txt qatori qo'shiladi Bu matn".

Ayniqsa, diqqatli o'quvchilar men yuqorida yozgan ko'rsatmalarga e'tibor berishdi. Pointer- bu fayldagi xayoliy "kursor" ning joriy holati. Bu erda fayl bilan ishlash boshlanadi. yordamida ko'rsatgichning o'rnini o'zgartirishingiz mumkin fseek() funktsiyalari:

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

Shunday qilib, biz avval o'qiymiz 3 belgi (natijada ko'rsatgichning joriy o'rni siljiydi 3 pozitsiyalar). Keyin ko'rsatgichni faylning boshiga o'rnatamiz. Va yana o'qiymiz 3 ramzi. Siz taxmin qilganingizdek, biz bir xil narsani ikki marta hisobladik. Bu birinchi marta 3 belgisi, keyin orqaga qaytdi va yana hisobladi 3 ramzi. Shuningdek, agar siz fseek() funktsiyalari almashtiring SEEK_SET yoqilgan SEEK_CUR, keyin ikkinchi parametr ko'rsatgich o'rnini o'rnatmaydi, lekin uni joriy joyga nisbatan siljitadi. Men hatto ko'rsatgichlar bilan mashq qilishni maslahat beraman, chunki buni tushunish unchalik oson emas. Shuningdek, men faylga ko'rsatgich pozitsiyasida, masalan, faylning boshida biror narsa yozishni tavsiya qilaman. Va natijalaringizni tushuntirishga ishonch hosil qiling.

Va nihoyat, fayllar bilan eng oddiy darajada ishlashga imkon beradigan yana bir nechta funktsiyalarni bermoqchiman: file_put_contens() Va file_get_contents(). Funktsiya file_put_contents() faylga va funksiyaga yozadi file_get_contents() fayldan tarkibni o'qiydi. Ushbu funktsiyalardan foydalanish juda oson, ammo kamroq variantlar mavjud (garchi, qoida tariqasida, ular kerak emas):

file_put_contents("files/a.txt", "Bu matn 2");
echo file_get_contents("files/a.txt");
?>

Ushbu skriptda biz birinchi qatorni yozdik " Bu matn 2" faylga, so'ngra biz olingan tarkibni o'qiymiz va uni chiqaramiz. Ko'rib turganingizdek, oddiyroq yo'lni topish qiyin. fayldan o'qish Va faylga yozish.

Bu barcha asosiy fikrlar PHP da fayllar bilan ishlash.

MySQL va Access ma'lumotlar bazalari tobora ommabop ma'lumotlarni saqlash vositalariga aylanmoqda. Ammo 1990-yillarning boshida PHP-da fayllar bilan ishlash mashhur bo'lib, yozuvlarni yangi qatorlar bilan ajratilgan CSV formatidagi matn fayllarida saqlash edi.

Asosiy ishlash tamoyillari

Ma'lumotlar bazalari qulay, lekin har bir ishlab chiquvchi hech bo'lmaganda fayllarni o'qish va yozish bo'yicha ba'zi asosiy bilimlarga ega bo'lishi kerak. Ko'p odamlar savol haqida o'ylashlari mumkin: "Nega men buni bilishim kerak? Agar men fayllardan foydalanayotgan bo'lsam, ular XML-da yozilgan va men shunchaki tahlil qiluvchidan foydalanaman."

Shunday qilib, nima uchun sizga fayllar kerak bo'lishining bir necha sabablari bor:

  1. Ikkilik ma'lumotlarni (masalan, tasvir fayllari) BLOB (ikkilik katta ob'ekt) ma'lumotlar bazasiga ko'chirish uchun.
  2. Eski maʼlumotlar bazasi yoki ilovadan eksport qilingan maʼlumotlarni (masalan, elektron pochta manzillari) import qiling.
  3. Oflayn ishlov berish uchun ma'lumotlar bazasidan matn fayliga ma'lumotlarni eksport qilish.

Fayllarni o'qish va yozish asosiy operatsiyalardir. Hujjatni o'qish kerak bo'lsa, avval uni ochishingiz kerak. Shundan so'ng, iloji boricha ko'proq tarkibni o'qing, keyin faylni yoping. Hujjatga ma'lumot yozish uchun avval uni ochishingiz kerak (yoki agar u hali yaratilmagan bo'lsa, uni yaratishingiz mumkin). Shundan so'ng, kerakli ma'lumotlarni yozib oling va tugagandan so'ng uni yoping.

Avtomatik ravishda ochiladigan va yopiladigan o'rnatilgan funktsiyalardan foydalanish ham qulay. Ular PHP5 da mavjud.Shuningdek, siz fayl atributlari, ya'ni uning xossalari bilan tanishishingiz kerak.

Ular aytishlari mumkin:

  • hajmi haqida;
  • oxirgi marta u bilan bog'langanligi haqida ma'lumot berish;
  • egasi haqida gapiring va hokazo.

PHP da fayllar bilan ishlash uchun barcha asosiy atributlarni o'rganish yaxshidir. Bu ishni ancha osonlashtiradi.

Fayl tarixi

Fayl oxirgi marta qachon tahrirlanganligini bilib olishingiz kerak bo'lishi mumkin. Bunda fileatime(), filemtime() va filectime() funksiyalari yordamga keladi.

"; echo $file . " i-tugun oxirgi marta o'zgartirilgan edi " . sana($formatDate, $timeM) . ".
"; echo $file . " o'zgartirildi " . date($formatDate, $timeC) . ".";

Mana oxirgi kirish vaqt tamg'asini oladigan va uni ko'rsatadigan kod:

  • C: Windowsfile.ini saytiga 2018-yil 19-sentabr, soat 16:34 da kirgan.
  • C: Windowsfile.ini o'zgartirildi, 2018 yil 8 oktyabr, 2:03 da.
  • C: Windowsfil.ini 2017 yil 16-dekabr, 4:34 da o'zgartirildi.

filectime() funktsiyasi fayl bilan bog'liq turli ma'lumotlarning o'zgarish vaqtini (masalan, ruxsatnomalar) va filemtime() faylning o'zi o'zgartirish vaqtini ko'rsatadi.

date() funktsiyasi fayl*time() funksiyalari tomonidan qaytarilgan Unix vaqt tamg'asini formatlash uchun ishlatilgan.

Fayl yoki yo'qmi?

PHP da faylni manipulyatsiya qilish haqiqatda sodir bo'layotganligini bilish uchun is_file() funksiyasidan yoki uning katalog ekanligini tekshirish uchun is_dir() funksiyasidan foydalanishingiz mumkin.

"; echo $file . (is_dir($file) ? " " : "not") . " katalogi.";

Kod chiqishiga misol:

  • C: Windowsfile.ini fayli.
  • C: Windowsfile.ini katalog emas.

Shunday qilib, siz xatolardan qochishingiz va beparvolik bilan "fayl bo'lmagan" ni ochmasligingiz mumkin. PHP da fayllar va kataloglar bilan ishlash xuddi shunday.

Fayl ruxsatnomalari

Fayl bilan ishlashdan oldin uning o'qilishi yoki yozilishi mumkinligini tekshirishingiz mumkin. Buning uchun siz is_writable() va is_readable() funksiyalaridan foydalanishingiz kerak.

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

Bu funksiyalar mantiqiy qiymatni qaytaradi va operatsiyani faylda bajarish mumkinligini tushuntiradi.

Kod ekranga quyidagi qiymatlarni chiqaradi:

  • C: Windowsfile.ini o'qilmoqda.
  • C: Windowsfile.ini yozilmagan.

Uchlik operatoridan foydalanib, faylga kirish mumkin yoki yo'qligini ko'rsatishingiz mumkin.

fayl hajmi

Fayl hajmini bilish uchun siz filesize() funksiyasidan foydalanishingiz kerak. U baytlarda ko'rsatiladi.

Funktsiya quyidagilarni ko'rsatadi:

  • C: Windowsfile.ini hajmi 510 bayt.

Faylni Windows tizimida ishlatish bu erda bir nuqtani ta'kidlaydi. Teskari chiziq qochish belgisi sifatida alohida ma'noga ega. Boshqa teskari chiziq qo'shish orqali bundan qochishingiz kerak bo'ladi.

Agar fayl hali yaratilmagan bo'lsa, filesize() funksiyasi False va xato haqida xabar beradi. Shuning uchun ular avval faylni kerakli file_exists() buyrug'ining mavjudligini tekshiradilar.

Xavfsizlik uchun file_exists() tekshiruvi deyarli har doim yoqilgan bo'lishi kerak.

Fayllarni o'qish

Oldingi bo'limda siz ularni o'qish yoki yozishni boshlashdan oldin ular bilan ishlayotgan fayllar haqida qancha ma'lumot olishingiz mumkinligini ko'rsatdi. Endi siz fayl mazmuni qanday o'qilganligini aniqlashingiz mumkin.

PHP fayllari bilan ishlash funksiyalari ishlarni osonlashtiradi. Bunday holda sizga file_get_contents() kerak bo'ladi. U faylni o'zingiz ochishingiz yoki yopishingiz shart bo'lmasdan faylning butun mazmunini o'zgaruvchiga o'qiydi. Yozish hajmi nisbatan kichik bo'lsa, bu qulay, chunki PHPda 1 Gb ma'lumotni darhol arxivga o'qish har doim ham oqilona emas. Quyida ".ini" fayllari va file_get_contents() funksiyasi bilan ishlash ko'rsatilgan.

Kattaroq fayllar uchun yoki oddiygina skriptingiz ehtiyojlariga qarab, tafsilotlarni o'zingiz hal qilish mantiqiyroq bo'lishi mumkin. Buning sababi shundaki, fayl ochilgandan so'ng siz uni ma'lum bir eslatma uchun qidirishingiz va xohlagancha ma'lumotlarni o'qishingiz mumkin. Fopen() funksiyasi faylni ochish uchun ishlatiladi.

fopen() funktsiyasi ikkita argumentni talab qiladi:

  • ochiladigan fayl;
  • Bu holatda ishlatiladigan rejim o'qish uchun "r" dir.

Funktsiya $file1 o'zgaruvchisida saqlanadigan faylga tutqich yoki oqimni qaytaradi. Fayl bilan ishlashda undan keyingi barcha buyruqlarda foydalanish kerak.

Ochiq fayldan bir satrdan o'qish uchun fgets() funksiyasidan foydalanishingiz mumkin.

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

Faylda qancha qator borligini oldindan bilish uchun do-while siklidan foydalanish yaxshi tanlovdir. Feof() funksiyasi fayl tugallanganligini tekshiradi va sikl fayl sharti oxirigacha davom etadi. O'qish tugallangach, fclose() funksiyasi hujjatni yopish uchun ishlatiladi.

Fayllarni yozib olish

fwrite() funksiyasidan foydalanib faylga yozishda ikkita tez-tez ishlatiladigan rejimlar "w" va "a" dir. "W" hujjatga yozilishi kerak bo'lgan narsani anglatadi, lekin u birinchi navbatda har qanday tarkibni o'chiradi, "a" faylda mavjud bo'lgan yangi ma'lumotlarni qo'shishni anglatadi. To'g'ri variant ishlatilganligiga ishonch hosil qilishingiz kerak.

Quyidagi misolda "a" yozish rejimidan foydalaniladi.

Avval fayl nomi o'zgaruvchiga tayinlanadi, so'ngra qo'shish uchun "a" rejimida ochiladi. Yoziladigan ma'lumotlar $output o'zgaruvchisi va fwrite() ga tayinlanadi va ma'lumot faylga qo'shiladi. Jarayon yana bir qator qo'shish uchun takrorlanadi, so'ngra fclose() yordamida hujjat yopiladi.

Oldindan belgilangan PHP_EOL doimiysi PHP matnli fayllar bilan ishlaydigan platformaga xos yangi qator belgisini qo'shadi.

Yuqoridagi kodni bajargandan so'ng faylning mazmuni quyidagicha ko'rinishi kerak:

  • banan;
  • Xitoy.

file_put_contents() funksiyasi ham faylga yozishi mumkin. U fayl nomini, yozilishi kerak bo'lgan ma'lumotlarni va agar u ma'lumotlarni qo'shish kerak bo'lsa, doimiy FILE_APPENDni oladi (birlamchi fayl tarkibini qayta yozadi).

Mana yuqoridagi misol, lekin bu safar file_put_contents() yordamida.

Ushbu funktsiyalar bilan tez-tez ishlashingiz kerak, shuning uchun ularni eslab qolish yaxshiroqdir. Bundan tashqari, ular bir kun kelib PHP fayllari bilan ishlashda ba'zi murakkab vazifalarni osonlashtirishi mumkin.

Oxirgi yangilanish: 11/1/2015

Ko'pgina dasturlash tillari singari, PHP ham ma'lumotlarni saqlash usullaridan biri bo'lgan fayllar bilan ishlashni qo'llab-quvvatlaydi.

Fayllarni o'qish va yozish

Fayllarni ochish va yopish

PHP da fayllarni ochish uchun fopen() funksiyasi aniqlanadi. U quyidagi ta'rifga ega: resource fopen (string $filename, string $mode) . Birinchi $filename parametri faylga yo'lni, ikkinchisi esa ochilish rejimini ifodalaydi. Ochilish maqsadiga va fayl turiga qarab, ushbu parametr quyidagi qiymatlarni olishi mumkin:

    "r" : Fayl faqat o'qish uchun ochiladi. Agar fayl mavjud bo'lmasa, false qaytaradi

    "r+" : Fayl faqat o'qish uchun ochiladi va yozish mumkin. Agar fayl mavjud bo'lmasa, false qaytaradi

    "w" : Fayl yozish uchun ochilgan. Agar bunday fayl allaqachon mavjud bo'lsa, u qayta yoziladi, agar bo'lmasa, u yaratiladi.

    "w+" : Fayl yozish uchun ochilgan va o'qilishi mumkin. Agar bunday fayl allaqachon mavjud bo'lsa, u qayta yoziladi, agar bo'lmasa, u yaratiladi.

    "a" : Fayl yozish uchun ochilgan. Agar bunday fayl allaqachon mavjud bo'lsa, unda ma'lumotlar faylning oxiriga yoziladi va eski ma'lumotlar qoladi. Agar fayl mavjud bo'lmasa, u yaratilgan

    "a+" : Fayl o'qish va yozish uchun ochiladi. Agar fayl allaqachon mavjud bo'lsa, u holda ma'lumotlar faylning oxiriga qo'shiladi. Agar fayl mavjud bo'lmasa, u yaratilgan

Fopen funktsiyasining chiqishi fayl deskriptori bo'ladi. Bu tutqich fayl operatsiyalari va faylni yopish uchun ishlatiladi.

Ishni tugatgandan so'ng faylni parametr sifatida fayl deskriptorini qabul qiluvchi fclose() funksiyasi yordamida yopish kerak. Masalan, faylni ochamiz va yopamiz:

$fd = fopen("form.php", "r") yoki die("faylni ochib bo'lmadi"); fclose($fd);

Or die("xato matni") konstruksiyasi skriptning ishlashni to‘xtatishiga va agar fopen funksiyasi faylni ocha olmasa, xato xabarini ko‘rsatishiga imkon beradi.

Faylni o'qish

Faylni o'qish uchun bir nechta funksiyalardan foydalanishingiz mumkin. Satrma-satr o'qish uchun fgets() funksiyasidan foydalaniladi, u fayl identifikatorini oladi va bir qatorni o'qishni qaytaradi. Keling, butun faylni satr bo'yicha ko'rib chiqaylik:

Har safar fgets() chaqirilganda, PHP ko'rsatgichni o'qilgan satr oxiriga qo'yadi. Fayl tugashini kuzatish uchun feof() funksiyasidan foydalaniladi, bu funksiya fayl tugallanganda rost qiymatini qaytaradi. Va faylning oxirigacha biz fgets() funktsiyasidan foydalanishimiz mumkin.

Butun faylni o'qish

Bunday holda, biz faylni aniq ochishimiz, tutqichni olishimiz va keyin faylni yopishimiz shart emas.

O'qishni bloklash

Shuningdek, fread() funksiyasidan foydalanib, blok-blok o‘qish, ya’ni fayldan ma’lum miqdordagi baytlarni o‘qish ham mumkin:

Fread() funktsiyasi ikkita parametrni oladi: o'qiladigan fayl dastagi va o'qiladigan baytlar soni. Blok o'qilganda fayldagi ko'rsatgich shu blokning oxiriga o'tadi. Shuningdek, feof() funksiyasidan foydalanib, faylning tugallanishini kuzatishingiz mumkin.

Fayl yozing

Fayl yozish uchun fwrite() funksiyasidan foydalaning, u faylga quyidagi qatorni yozadi:

Boshqa fputs() funktsiyasi xuddi shunday ishlaydi:

Fayl ko'rsatkichi bilan ishlash

Faylni "w" rejimida o'qish yoki yozish uchun ochishda fayldagi ko'rsatgich boshida joylashtiriladi. Ma'lumotlarni o'qiyotganda PHP fayldagi ko'rsatgichni o'qilgan ma'lumotlar blokining oxiriga olib boradi. Biroq, biz fayldagi ko'rsatgichni qo'lda boshqarishimiz va uni ixtiyoriy joyga o'rnatishimiz mumkin. Buning uchun funksiyadan foydalanishingiz kerak fseek, bu quyidagi rasmiy ta'rifga ega:

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

$handle parametri fayl tutqichini ifodalaydi. $ofset parametri o'qish/yozish boshlanadigan faylning boshiga nisbatan baytlardagi ofsetdir. Uchinchi ixtiyoriy parametr ofset qanday o'rnatilishini belgilaydi. U uchta qiymatni qabul qilishi mumkin:

    SEEK_SET : standart qiymat, faylning boshlanishiga nisbatan ofset baytlarida ofsetni o'rnatadi

    SEEK_CUR : fayldagi joriy pozitsiyaning boshiga nisbatan ofset baytlarida ofsetni belgilaydi

    SEEK_END : ofsetni fayl oxiridan baytlarni ofset qilish uchun belgilaydi

Agar ko'rsatkich muvaffaqiyatli o'rnatilgan bo'lsa, fseek() funktsiyasi 0 ni qaytaradi va agar ko'rsatgich muvaffaqiyatsiz bo'lsa, u -1 ni qaytaradi.

Funktsiyadan foydalanishga misol:

$fd = fopen("salom.txt", "w+") yoki die("faylni ochib bo'lmadi"); $str = "Salom dunyo!"; // yozish uchun qator fwrite($fd, $str); // boshiga qatorni yozish fseek($fd, 0); // fayl ko'rsatkichini boshiga qo'ying fwrite($fd, "Oink"); // boshidagi qatorni yozing fseek($fd, 0, SEEK_END); // ko'rsatgichni oxiriga qo'ying fwrite($fd, $str); // oxiriga boshqa qator yozing fclose($fd);

Va endi PHP da fayllar bilan ishlash bo'yicha juda katta, ammo murakkab bo'lmagan dars bo'ladi. Avvalo, fayllar nima uchun? Axir siz hamma narsani MySQL yoki PostgreSQL yoki boshqa ma'lumotlar bazasida saqlashingiz mumkin. Ammo ba'zida ma'lumotlar bazasidan foydalanishda vazifalar mavjud bo'lib, barcha ishlov berish va ulanish xavfsizligi uchun tashvishlanish tavsiya etilmaydi. Masalan, biz oddiy hisoblagich yasashimiz kerak, lekin bundan oldin biz loyihada ma'lumotlar bazasidan foydalanmagan edik. Shunday qilib, bitta kichik hisoblagich uchun ma'lumotlar bazasini yaratib, unda bir nechta satrlarni saqlashimiz kerakmi? Bu yerda fayllardan foydalanish ancha oson. Bundan tashqari, ba'zida hosting ma'lumotlar bazalarini umuman qo'llab-quvvatlamaydi, keyin fayllar odatda yagona variant bo'ladi.

Xo'sh, aytaylik, men sizni fayllar kerakligiga ishontirdim :) Endi ular bilan qanday ishlashni aniqlaymiz. Qanday qilib yaratish, ochish, yozish, ustiga yozish, o'qish va hokazo. Birinchi birinchi narsalar.

Fayl yarating

PHP fayllarni ochish uchun fopen funksiyasidan foydalanadi. Biroq, u fayllarni ham yaratishi mumkin. Agar siz fopen-ga mavjud bo'lmagan fayl nomini o'tkazsangiz, u uni yaratadi.

Fopen funktsiyasining o'zi ikkita parametrni oladi, ularning ikkalasi ham talab qilinadi. Birinchidan, biz ochmoqchi bo'lgan fayl nomini ko'rsatishimiz kerak. Ikkinchidan, funksiyaga ushbu fayl bilan nima qilishni rejalashtirayotganimizni bildiruvchi parametrni o'tkazing (masalan, fayldan o'qish, yozish va h.k.).

Agar fayl yaratishimiz kerak bo'lsa, biz uning nomini belgilaymiz va unga ma'lumot yozmoqchi bo'lgan parametrni beramiz. Eslatma: PHP ga faylga nima yozayotganimizni albatta aytishimiz kerak, aks holda u yangi fayl yaratmaydi.

Misol:

$ourFileName = "testFile.txt";

$ourFileHandle = fopen($ourFileName, "w") yoki die("faylni ochib bo'lmaydi");

fclose($ourFileHandle);

Birinchi qator $ourFileName = testFile.txt fayl nomini saqlaydigan qator o'zgaruvchisini yaratadi.

Ikkinchi qator $ourFileHandle = fopen($ourFileName, 'w') yoki die("faylni ochib bo'lmaydi") mos ravishda yozish uchun mavjud faylni yaratadi yoki ochadi. Yoki faylni ocholmasligi haqida xabar qaytaradi.

Uchinchi qator fclose($ourFileHandle) faylni yopadi. Bu aslida oddiy.

php da faylni ochish imkoniyatlari

Birinchi parametr "r" (o'qish) - faylni faqat o'qish uchun ochadi, siz unga yozishingiz mumkin emas.

Ikkinchi parametr "w" (yozish) - yozish uchun ochiladi. Bunday holda, yozuv har doim fayl boshidan davom etadi. Agar u erda allaqachon ma'lumot mavjud bo'lsa, uning ustiga yoziladi.

Uchinchi parametr 'a' (qo'shish) - faylni yozish uchun ochadi, lekin w dan farqli ravishda faylning oxiriga qo'shiladi.

Kengaytirilgan variantlar:

'r+' parametri - o'qish va yozish uchun ochiladi. Ko'rsatkich faylning boshida bo'ladi.

'w+' parametri - o'qish va yozish uchun ochiladi, LEKIN fayldagi barcha ma'lumotlarni o'chiradi!!!

parametr 'a+' - o'qish va yozish uchun ochiladi, lekin ko'rsatgich faylning oxirida bo'ladi.

Tabiiyki, bu parametrlardan faqat bittasi funksiyaga uzatilishi mumkin, bir nechta emas. Ular "X" ga almashtirilishi kerak:

fopen($ourFileName, "X")

Faylga yozing

Xo'sh, endi biz faylni ochdik, kerakli parametrni tanladik, keyin nima bo'ladi? Unga biror narsa yozishingiz kerak. Buni qanday qilish kerak? Biz yozmoqchi bo'lgan fayl va matn qatoriga ko'rsatgichni parametr sifatida qabul qiluvchi fwrite funksiyasidan foydalanish. Misol:

$myFile = "testFile.txt";

$fh = fopen($myFile, "w") yoki die("faylni ocholmaydi");

$stringData = "Birinchi qator";

fwrite($fh, $stringData);

$stringData = "Ikkinchi qator";

fwrite($fh, $stringData);

Biz testFile.txt faylini yaratdik, unga ko'rsatgich $fn o'zgaruvchisida saqlanadi. Biz unga "Birinchi qator" qatorini yozdik (oxirida biz n oxiridagi belgidan foydalandik), keyin esa "Ikkinchi qator". Keyin ular faylni yopdilar.

DIQQAT! Fayllaringizni yopishni hech qachon unutmang! Aks holda, agar skriptning bajarilishi g'ayritabiiy tarzda tugasa, fayllardagi ma'lumotlar saqlanmaydi! Ishdan keyin har doim fclose dan foydalaning!!!

Fayldan o'qish

Biz uni yozib oldik, endi o'qib chiqamiz! Bu ham unchalik qiyin emas. Biz fread funktsiyasidan foydalanamiz. Kirish sifatida biz unga faylga ko'rsatgich va biz o'qimoqchi bo'lgan baytlar sonini beramiz. Misol uchun, bitta belgi bir baytga teng (kodlashiga qarab), biz 5 ta belgini o'qishni xohlaymiz: $theData = fread($fh, 5).

Ammo agar biz fayldagi barcha ma'lumotlarni olishimiz kerak bo'lsa, unda bizga fayldagi baytlar sonini qaytaradigan fayl hajmi funktsiyasi kerak bo'ladi, shuning uchun agar fayl hajmi funktsiyasining natijasi freadga uzatilsa, biz fayldan barcha ma'lumotlarni oling:

$myFile = "testFile.txt";

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

$theData = fread ($fh, fayl hajmi ($myFile));

Umid qilamanki, men buni aniq tushuntirdim.

$myFile = "testFile.txt";

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

$theData = fgets($fh);

Natijada testFile.txt faylidan birinchi qatorni olamiz. Shunga ko'ra, barcha qatorlardan o'tish uchun siz foreach tsiklidan foydalanishingiz kerak:

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

foreach($single_line sifatida $liniyalar)

echo $single_line . "
n";

Endi siz o'qish, yozish yoki ikkalasi uchun fayllarni qanday ochishni o'rgandingiz. Ularga ma'lumotlarni yozing yoki Qo'shish orqali ularni ustiga qo'shing, shuningdek, ulardan ma'lumotlarni o'qing.

Agar siz PHP bilan mustaqil ishlashni o'rganayotgan bo'lsangiz, unda fayldan ma'lumotlarni o'qish va unga o'zgartirishlar kiritishni o'rganish muhimdir. PHP faylida yozib olish veb-ilovalarni ishlab chiqish, server ma'lumotlarini o'zgartirish va tashqi dasturlar va qo'shimchalarni ishga tushirish uchun amalga oshiriladi.

php fayllar bilan qanday ishlash kerak

Agar faylda shunday kengaytma bo'lsa, demak u xuddi shu nomdagi dasturlash tilida yozilgan dastur kodini o'z ichiga oladi. O'zgartirishlar kiritish uchun kompyuteringizga dasturiy ta'minot muharrirlaridan birini o'rnatishingiz kerak bo'ladi:

PHP ekspert muharriri;
. Dreamweaver;
. Eclipse PHP ishlab chiqish;
. PHPEdit.

Agar siz veb-sayt yaratayotgan bo'lsangiz, unda siz ko'pincha boshqa faylda shablon sifatida saqlanadigan bir xil dizaynlardan foydalanishingiz kerak bo'ladi. Buning uchun, jumladan, foydalanish yaxshidir. Ushbu funktsiyani kiritganingizdan so'ng, php faylga ulanishning nomi va kengaytmasini yozishingiz kerak, masalan, 1.php ni qo'shing. Ushbu dizayn kiritilgan faylni bir nechta o'qishni qo'llab-quvvatlaydi va qo'shimcha xususiyat - xatolik yuz berganda kod bajarilishining uzluksizligi. Agar biror narsa noto'g'ri bo'lsa, kod yangi satrdan bajarilishda davom etadi.
Shunday qilib, siz faylni kodingizga kiritasiz. Yana bir usul - talabni kiritish. Yuqorida tavsiflangan qo'shimchalardan farqli o'laroq, fayl dastur kodi ishga tushmasdan oldin kiritilgan, lekin siz unga faqat bir marta kirishingiz mumkin.

Faylni tekshirish

PHP fayliga yozishdan oldin, uning mavjudligiga ishonch hosil qilishingiz kerak, keyin uni oching va kerakli tahrirni amalga oshiring. Buning uchun file_exists() funksiyasidan foydalanishingiz mumkin, agar u mavjudligini tasdiqlasa, tahrirlovchi oynasida TRUE javob qaytariladi, aks holda - FALSE.
Boshqa is_file() funksiyasi PHP fayliga maʼlumotlarni yozish mumkinligi haqida xabar berishi mumkin. Bu file_exits dan ishonchliroq va ko'pchilik dasturchilar boshlash uchun is_file'dan foydalanadilar. Fayl mavjudligini tasdiqlaganingizdan so'ng, u bilan ishlashni boshlashingiz mumkin.

Faylga o'zgartirishlar kiritish

Faylga o'zgartirish kiritish uchun foydalanishingiz mumkin bo'lgan birinchi vosita fwrite(). U quyidagi sintaksis bilan qatorlarni yozadi:

Int - manipulyator;
. String o'zgaruvchidir.

Shunga o'xshash yana bir funktsiya mavjud - fputs(), bu taxallusdir. Ushbu vositalar o'rtasida hech qanday farq yo'q, siz birini yoki boshqasini tanlashingiz mumkin. Talabalar uchun fwrite ko'proq tarqalgan bo'lsa, amaliyotchi dasturchilar ko'pincha fputlardan foydalanadilar.

Matn fayliga PHP yozuvini kiritish uchun bitta muhim shart bajarilishi kerak - u tahrirlash uchun ochiq bo'lishi kerak. Bu fayl yozish ruxsatiga ega jildda joylashgan bo'lishi kerak.

Ishlash uchun avval dasturda matnli hujjatni ochishga harakat qiling, so'ngra oddiy vositalar yordamida tahrirlar qiling.

// Matn faylini oching
$f = fopen("text.txt", "w");
// Matn qatorini yozing
fwrite($f, "Salom! Xayrli kun!");
// Matn faylini yoping
fclose($f);

Bu misolda text.txt hujjat nomidir. Siz uni boshqacha chaqirishingiz mumkin: “Salom! Xayrli kun! - matnga misol, u butunlay o'zboshimchalik bilan bo'lishi mumkin. Barcha o'zgarishlar avtomatik ravishda ochiq faylda saqlanadi.

PHP umumiy maqsad ekanligini unutmang. U veb-ilovalarni yaratish uchun intensiv ravishda qo'llaniladi. Ushbu yechim ko'pchilik hosting provayderlari tomonidan qo'llab-quvvatlanadi. Biz veb-saytlarni yaratish uchun ishlatiladigan vositalar orasida etakchi haqida gapiramiz. Endi siz PHP faylga qanday yozishni bilasiz.