muzruno.com

PHP. Работа с файлове и директории

Базите данни MySQL и Access все повече се превръщат в публично достъпно хранилище. Но в началото на 90-те години беше популярно да се работи с файлове в PHP, като се записват записи във форматирани текстови файлове в CSV формат, разделени с нови редове.

Основни принципи на работа

Бази данни са удобни, но всеки разработчик трябва поне да има някои основни познания за това как да чете и пише файлове. Може би мнозина ще се замислят върху въпроса: "Защо трябва да зная това?" Ако използвам файлове, те са написани в XML и аз просто използвам анализатора. "

Учене php

Ето няколко причини, поради които може да се наложи да имате файлове:

  1. За да преместите двоични данни (например файлове с изображения) в базата данни BLOB (двоични големи обекти).
  2. Данните за импортиране (напр. Имейл адреси) се експортират от стара база данни или приложение.
  3. За експортиране от информацията в базата данни в текстов файл за офлайн обработка.

Четенето на файлове и писането са основни операции. Ако искате да прочетете документа, първо трябва да го отворите. След това прочетете колкото е възможно повече съдържание, след което затворете файла. За да напишете информация в документ, трябва първо да я отворите (или може би да я създадете, ако тя вече не е създадена). След това запишете необходимите данни и ги затворете в края.

Също така е удобно да използвате вградени функции, които автоматично се отварят и затварят. Те са достъпни в PHP 5. Трябва също така да се запознаете с атрибутите на файловете, т.е. с техните свойства.

Те могат да кажат:

  • за размера;
  • дават информация за това кога за последен път са се обърнали към него;
  • разкажете за собственика и т.н.

Най-добре е да научите всички основни атрибути за работа с файлове в PHP. Това значително ще улесни работата.

История на файловете

Може да се наложи да знаете времето на последното редактиране на файла. В този случай функциите са спасени: fileatime (), filemtime () и filectime ().

Програмиране с php
"-echo $ file" имаше последната промяна на i-node. "($ formatDate, $ timeM).
"- $ $ file" "е променена" ($ formatDate, $ timeC). "

Тук кодът извлича клеймото на последния достъп и го показва:

  • C: Windowsfile.ini бе прегледана на 19.09.2018 16:34.
  • C: Windowsfile.ini беше сменен на пт 8 октомври 2018 г. 2:03 ч.
  • C: Windowsfil.ini беше променен във вторник 16 декември, 2017 4:34.

Функцията filectime () показва времето за промяна на различна информация, свързана с файла (например права за достъп), и filemtime () - променя самия файл.

Функцията date () беше използвана за форматиране на Unix таймер-маркер, върнат от файла * time () функции.

Файлове или не?

За да разберете дали наистина работи с файлове в PHP, можете да използвате функцията is_file () или is_dir (), за да проверите дали тя е директория.

";" $ file "(is_dir ($ file)?" ":" не ")." "

Примерно изходен код:

  • C: Файл на Windowsfile.ini.
  • C: Windowsfile.ini не е директория.

По този начин можете да избегнете грешки и да не отваряте погрешно "не файл". В PHP работата с файлове и директории е подобна.

Разрешения за файлове

Преди да работите с файл, можете да проверите дали е четлив или записваем. За да направите това, използвайте функциите is_writable () и is_readable ().

";" $ file "(is_writable ($ file)" ":" not ")" е написан. "-

Тези функции връщат Boolean стойност и обясняват дали операцията може да бъде изпълнена във файл.

Кодът показва на екрана следните стойности:

  • C: Прочита се Windowsfile.ini.
  • C: Windowsfile.ini не е написан.

Като използвате тройния оператор, можете да посочите дали файлът е наличен или не.

Размер на файла

За да разберете размера на файла, трябва да използвате функцията размер на файла (). Показва се в байтове.

Работа с php

Функцията ще покаже следното:

  • C: Windowsfile.ini е с размер 510 байта.


Използването на файл в системата Windows тук подчертава един нюанс. Обратното наклон има специален смисъл като характер на бягство. Ще бъде необходимо да се избегне това, като се добави още едно наклонена черта.

Ако файлът все още не е създаден, функцията file size () ще покаже False и грешка. Затова първо проверете файла за съществуването на необходимата команда file_exists ().

File_exists () трябва да се проверява почти винаги за сигурност.

Четене на файлове

Предишната секция показва колко можете да научите за файловете, с които работите, преди да започнете да четете или пишете до тях. Сега можете да разглобите как се прочита съдържанието на файла.

Работете в php с ini файлове

Функциите за работа с PHP файлове улесняват задачата. В този случай се нуждаете от file_get_contents (). Той ще прочете цялото съдържание на файла в променлива, без да е необходимо да го отваряте или затваряте сами. Това е удобно, когато размерът на запис е сравнително малък, тъй като незабавното четене на 1 GB данни в архив не винаги е рационално в PHP. Работата с ".ini" файлове и file_get_contents () е показана по-долу.

За големи файлове или само в зависимост от нуждите на вашия скрипт, може би е по-разумно да се обработват сами подробностите. Това се дължи на факта, че веднага след като файлът се отвори, можете да потърсите конкретен коментар в него и да прочетете толкова данни, колкото искате. Функцията fopen () се използва за отваряне на файл.

За да работите с fopen (), трябва да имате два аргумента:

  • файлът да се отвори;
  • Режимът, използван в този случай, е "r" за четене.

Функцията връща дескриптор или поток към файл, който се съхранява в променливата $ file1. Той трябва да се използва във всички следващи команди, когато работите с файл.

Най-често срещаните стойности на режима
режим стойност Позиция на курсора Ако файлът не съществува?
R само за четене началото на файла ще даде грешка
w само запис началото на файла създайте нов
а само запис края на файла създайте нов

За да прочетете от отворен файл един ред наведнъж, можете да използвате функцията fgets ().

"-} докато (! feof ($ file1)) - fclose ($ file1)

Използването на make-while-loop е добра опция, за да разберете предварително колко линии във файл. Функцията feof () проверява дали файлът за завършване е достигнал и цикълът продължава до края на файловото състояние. След приключване на четенето функцията fclose () се използва за затваряне на документа.

Писане на файлове

Два често използвани режима, когато пишете във файл с помощта на функцията fwrite (), са: "w" и "a". "W" означава какво искате да напишете в документа, но първо ще изтрие всяко съдържание "a" - добавяйки нови данни към това, което вече съществува във файла. Трябва да сте сигурни, че се използва правилната версия.

Работа с php и ini файлове

Следният пример ще използва режима "a" за писане.

Първо, името на файла се присвоява на променливата, след което се отваря в режим "a" за добавяне. Данните, които трябва да бъдат записани, се присвояват на $ output и fwrite (), а информацията се добавя към файла. Процесът се повтаря, за да добавите още една линия, след което документът се затвори, като се използва fclose ().

Предварително определената константа PHP_EOL добавя нов ред, специфичен за платформата, на която PHP работи с текстови файлове.

Съдържанието на файла след изпълнението на горния код трябва да изглежда така:

  • банан;
  • Китай.

Функцията file_put_contents () може да записва във файл. Това отнема името на файла, данните, които трябва да бъдат написани, и постоянната FILE_APPEND, ако трябва да добави данни (това ще презапише съдържанието на файла по подразбиране).

Тук е същият пример като по-горе, но този път използвайки file_put_contents ().

С тези функции трябва да работите често, така че е по-добре да ги запомните. Освен това те понякога могат да работят с PHP файлове, за да облекчат някои сложни задачи.

Споделяне в социалните мрежи:

сроден