Работа с файлове в PHP

Работа с файлове - PHP е важен инструмент.

Включването на външни файлове

Всеки PHP-документ може да включва файл с помощта на отчета за включване (). Нейният аргумент: пътят до файла. Тази инструкция е удобен за използване при наличие на едни и същи парчета код в много от PHP-програмата. Съдържанието на включвания файл се третират като обикновен HTML-текст. За съдържанието на този файл се обработва като PHP-програма, е необходимо да се оформи отварящи и затварящи тагове, PHP.







Top.php включват файл с PHP-програмата:

Резултатите от Пример 1:

. Основната част.

В този случай, резултатът ще бъде същият, както ако са включени top.php файл съдържа само низ HTML-текст:

Включване на файлове може да се върнат стойности подобни функции. Използване на отчета за връщане прекратява извършването на този файл, както и функция.

Top.php включват файл с PHP-програмата:

Резултатите от Пример 2:

Включи файл върна 56

Инструкции включват () може да се използва в рамките на цикъла. В цикъл включва () се извършва при всяка итерация. Това може да се използва за включване на няколко файла. Например:

включват () изявление също могат да бъдат включени в тялото на условния изявлението.

Въпреки приликата на външен вид да функционира, да включва () функция не е, и е специална езикова конструкция.

За да покаже, че е необходимо да включите файлове само веднъж като се използва include_once () декларация

анализ на файлове

PHP предоставя набор от функции, които предоставят информация за файлове. Най-често използваните са:
  • file_exists () - определя съществуването на файла. Например:
  • is_file () - определя дали разгледа обект файл. Например:
  • is_dir () - определя дали разгледа обект директория. Например:
  • is_readable () - определя дали файлът е достъпен за четене. Например:
  • is_writable () - определя дали файлът е достъпен за запис. Например:
  • размер на файла () - определя размера на файла в байтове.
  • filemtime () - указва датата и часа на последна промяна.
  • fileatime () - указва датата и часа на последния достъп до файла.

Резултатите от Пример 3:

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

управление на файла

  • прекратяване на връзката () - изтрива даден файл. Например:
  • fopen () - отваря локален или отдалечен файл и връща указател към нея. Показалецът се използва във всички операции с съдържанието на файла. Аргументи: име на файла и отворен режим.

    четене. показалеца на файл е разположен в неговото начало

    четенето и писането. показалеца на файл е разположен в неговото начало

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

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

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

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

    Ако на открито не се осъществи, е възможно да се прекъсне изпълнението на програмата. Например:
  • fclose () - затваря файла. Аргумент: файлов указател предварително получена от fopen (). Например:
  • feof () - проверка на края на файла. Аргументът: показалеца на файл.
  • fgetc () - прочетете следващия знак от файла. Аргументът: показалеца на файл.
  • fgets () - чете следващия ред на файла. Аргументи: файлов указател и дължината на линия, за да се четат. Работата спира, или след прочитането каза брой знаци или след откриване на крайната линия или файл.

  • fread () - обща функция, за да се чете от файла. Аргументи: файлов указател и броя на символите, които четете.
  • fseek () - офсет от началото на файла. Аргументи: файлов указател и отместване.

  • fputs () - влизане ред във файла. Аргументи: файлов указател и низ.
  • неуспешно () - пълен функция аналогови fputs ().

    Ключалка Използване на стадото () не е абсолютно. Тъй като това ще се счита само онези програми, които също използват тази функция.







  • В PHP версия> = 4.3.0, нови удобни функции за работа с файлове:
    • file_get_contents () - прочетете целия файл или URL
    • file_put_contents () - запис на файлове

    Работа с Directories

    PHP има няколко функции за работа с директории:
    • защитен режим () - създаване на директория. Аргументи за името на записа директория и режим на достъп. Достъп - точният брой процеси с три цифри с водеща нула. Първата цифра - правото на достъп за собственика, а вторият - за групата, а третият - за всички останали. В Windows режим на достъп се игнорира. На система UNIX определя следните разрешения:

    Достъп за да започнете

    Напиши достъп

    Достъп и започнете да записвате

    Прочетете достъп

    Прочетете достъп и стартирайте

    Достъп за четене и писане

    Тест работа израз цикъл не е толкова, колкото ми се иска, ако директорията съдържа файл с име "0". В този случай, на името на "0" ще бъде преобразувана в 0, което ще доведе до края на цикъла. Можете да избегнете това, като се вземат допълнителни мерки за сигурност, като промените израз за изпитване:

    В допълнение към използването на функцията fgetc () fgets () fgetss (), можете да използвате
    $ File = файл ($ името на файла). Тя гласи $ на файла, в масив ($ файл) на.

    Трансферът на файл от сървъра. Изтегляне на файла. Тя изтегля.

    Ръчно изтегляне, или като потребител скрипт, за да се отвори прозореца, за да запишете файла. За да отворите диалоговия прозорец в браузъра "Запазване на файл", за да file.dat името на файла, сценарият трябва да изпрати тези заглавия:

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

    Предполага се, че $ CD - път до файла, $ Fn - името на файла, да прехвърляте файлове на сървъра?

    Функции за работа с директории

    PHP променя текущата си директория на посочения като параметър, ул. Връща TRUE при успех, при неуспех
  • Chroot () - Промяна на основната директория на булев Chroot на (ул низ)

    Променя основната директория на текущия процес предава като параметър, ул. Връща TRUE при успех, при неуспех.

    Забележка: Тази функция не се изпълнява на Windows платформи.
  • closedir () - Освободете директория дръжка невалидни closedir (Ресурс каталог)

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

    реж - директория клас

    А псевдо-обектно ориентиран механизъм за четене на дадена директория премина към директорията на параметър. От откриването на каталога са на разположение две свойства на класа. "Дръжка" собственост може да се използва с други функции за работа с каталози, например, функции readdir (). rewinddir () и closedir (). "Път" собственост съдържа пътя до публичната папка. Съществуват три метода: прочетете, назад и затвори.

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

    Забележка: Редът, в който методът се "четат" обратно каталожните позиции, в зависимост от операционната система.

    Забележка: Също така, PHP автоматично ще открие вътрешния клас Directory, което означава, че не можете да дефинирате собствени класове със същото име.


  • очаква се целочислен израз () - Вземи текущата работна директория низ очаква се целочислен израз (свободен)

    Връща името на текущата работна директория.


  • opendir () - Отваряне на директорията Ресурс opendir (низ път)

    Връща манипулатор директория да се използва с closedir функции (), readdir () и rewinddir ().

    Ако пътят не съществува или директория в посочената пътека не може да се отвори поради разрешение ограничения или грешки на файловата система, opendir () връща FALSE и генерира PHP грешка от ниво E_WARNING. Можете да изключите това съобщение за грешка като поставим символа "@" име на функция opendir ().

    Започвайки от версия PHP 4.3.0, параметърът път също може да бъде всеки един URL, на което резултатът от жалбата списък на файлове и директории. Въпреки това, този метод работи само при използване на URL-обвивка файл: //. От PHP 5.0.0 е добавена поддръжка URL-опаковчик FTP: //.


  • readdir - получи директория елемент за нейната дръжка низ readdir (ресурс каталог)

    Връща името на следващото по ред на записа на директорията. Имена на елементи върнати в реда, който зависи от файловата система.

    В примера по-долу, имайте предвид начина, по който да се провери стойността на връщане от readdir (). Този пример се проверява стойностите на самоличността (изразите са идентични, когато те са еднакви и ценности от типа - за повече информация вижте сравнителни оператори) ценим FALSE, защото в противен случай, всеки запис от указателя, чието име може да се изрази като FALSE спиране на цикъла (например елемент, наречен "0").

    Имайте предвид, че readdir () функция може да върнете предмет с имена, а ако не искате да получавате тези ценности, просто да ги изхвърли:


  • rewinddir () - Reset директория справят невалидни rewinddir (ресурс каталог)

    Възстановява поток директория предава в каталог параметър, така че да сочи към началото на указателя


  • scandir () - Получаване на списък с файлове и директории, намиращи се в scandir зададения път масив (низ каталог [, вътр ред])

    Тя връща масив, съдържащ имената на файлове и директории, намиращи се по пътя, който е приет през каталог параметър. Ако директорията не е такова, функцията връща FALSE Булева стойност и генерира грешка на ниво E_WARNING.

    По подразбиране, за сортиране се извършва във възходящ азбучен ред. Ако разполагате с допълнително нареждане (равна на 1), сортирането е направено по азбучен ред в низходящ ред. Примерен код

    Резултатът ще бъде нещо като:

    Array ([0] =>. [1] =>. [2] => bar.php [3] => foo.txt [4] => somedir) Array ([0] => somedir [1] => foo.txt [2] => bar.php [3] =>. [4] =>).