Работа с файлами на php: открытие, запись, чтение. Работа с файлами в PHP. Чтение файла, запись в файл. PHP учебник. Удаление файлов, изменение chmod, работа с каталогами. C

Под работой с файлами в PHP подразумевается чтение из файла и запись в файл различной информации. Совершенно очевидно, что работать с файлами приходится много, поэтому любой PHP-программист обязан уметь считывать из файла и записывать в файл .

Последовательность работы с файлами в PHP такая:

  1. Открыть файл.
  2. Выполнить необходимые действия.
  3. Закрыть файл.

Как видите, последовательность работы с файлами напоминает работу с файлами через обычный проводник. Только здесь вся работа выполняется автоматически самим PHP-скриптом .

Начнём с первого пункта - открытие файла. Файл открывается с помощью функции fopen() . Первый параметр - это путь к файлу, а второй параметр - модификатор . Давайте сразу разберём возможные модификаторы:

  1. a - открывает файл только для записи, причём указатель помещается в конец файла.
  2. a+ a , но также файл открывается ещё и для чтения.
  3. r - открывает файл только для чтения, а указатель устанавливается в начало файла.
  4. r+ - то же самое, что и модификатор r , но также файл открывается ещё и для записи.
  5. w - открывает файл только для записи, указатель устанавливает в начало файла и стирает всё содержимое файла.
  6. w+ - то же самое, что и модификатор w , только файл открывается также и для чтения.

Также различают два режима работы с файлами: бинарный (обозначается b ) и текстовый (обозначается t ). Если Вы работаете с обычным текстовым файлом, то выбирайте текстовый режим, а если, например, с изображением, то бинарный.

Это все основные модификаторы, которых Вам вполне хватит. Теперь давайте узнаем, как закрыть файл. Закрывается файл с помощью функции fclose() .

Теперь перейдём к чтению файла с помощью функции fread() . И давайте, наконец-то, приведу пример:

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

В данном примере мы сначала открываем файл для чтения в текстовом режиме (модификатор rt ). Функция fopen() возвращает так называемый дескриптор , с помощью которого можно общаться с файлом, и записываем его в переменную handle . Затем мы в цикле while() до тех пор, пока не достигнут конец файл, считываем содержимое каждый раз по 4096 символов, которые записываем в переменную contents . После завершения процесса считывания - закрываем файл, вновь с помощью дескриптора файла.

Теперь перейдём к записи с помощью функции fwrite() :

$handle = fopen("files/a.txt", "at");
$string = "This is text";
fwrite($handle, $string);
fclose($handle);
?>

После запуска этого скрипта, в файле a.txt добавится строка "This is text ".

Особо внимательные читатели обратили внимание на указатели, о которых я писал чуть выше. Указатель - это текущая позиция воображаемого "курсора" в файле. Именно с него и начинается работа с файлом. Изменить положение указателя можно с помощью функции fseek() :

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

Таким образом, мы сначала считываем 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", "This is text 2");
echo file_get_contents("files/a.txt");
?>

В данном скрипте мы сначала записали строку "This is text 2 " в файл, а потом считываем полученное содержимое и выводим его. Как видите, трудно придумать более простой способ чтения из файла и запись в файл .

Вот и все основные моменты работы с файлами в PHP .

У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!

Работа с файлами

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

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

В каждый PHP-документ можно включить файл с помощью инструкции include() . Её аргумент: путь к файлу. Этой инструкцией удобно пользоваться при наличии одинаковых кусков кода во многих PHP-программах. Содержимое включаемого файла обрабатывается как простой HTML-текст. Для того, чтобы содержимое этого файла обрабатывалось как PHP-программа, нужно обрамлять его открывающим и закрывающим тегами PHP.

Пример 1

Использование include() ...Основная часть..."; ?>

Echo "

...Общее приветствие...

"

РЕЗУЛЬТАТ ПРИМЕРА 1:

...Общее приветствие...

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

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

...Общее приветствие...

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

Пример 2

Использование инструкции include(), возвращающей значение Включаемый файл вернул $res"; ?>

Включаемый файл top.php с PHP-программой:

РЕЗУЛЬТАТ ПРИМЕРА 2:

Включаемый файл вернул 56

Инструкцию include() можно использовать внутри цикла. В цикле include() выполняется при каждой итерации. Это можно использовать для включения нескольких файлов. Например:

For ($i=1; $i<=5; $i++) include("incfile{$i}.htm");

Определение имени включаемого файла и его загрузка производятся повторно при каждом вызове include() . Это означает, что если содержание включаемого файла с момента предыдущего вызова изменилось, то загрузится новое содержание.

Оператор include() также можно включать в тело условного оператора.

Несмотря на сходство по внешнему виду с функцией, include() функцией не является, а представляет собой специальную конструкцию языка.

Для указания что файл нужно подключать только один раз используется оператор include_once()

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

PHP содержит множество функций, дающих информацию о файлах. Наиболее употребимыми являются:

  • file_exists() - определяет существование файла. Например: if (!file_exists("aaa.php")) echo "Внимание! Файл aaa.php не найден!";
  • is_file() - определяет, является ли исследуемый объект файлом. Например: if (is_file("bbb.txt")) echo "Можете не сомневаться, bbb.txt - это файл";
  • is_dir() - определяет, является ли исследуемый объект каталогом. Например: if (is_dir("/tmp")) echo "Действительно, /tmp - это каталог";
  • is_readable() - определяет, доступен ли файл для чтения. Например: if (is_readable("db.dbf")) echo "db.dbf можно читать";
  • is_writable() - определяет, доступен ли файл для записи. Например: if (is_writable("db.dbf")) echo "В db.dbf писать можно";
  • filesize() - определяет размер файла в байтах.
  • filemtime() - определяет дату и время последнего изменения файла.
  • fileatime() - определяет дату и время последнего обращения к файлу.

Пример 3

Информация о файле "; echo "$f - ".(is_dir($f) ? "" : "не ")."каталог
"; echo "$f ".(is_readable($f) ? "" : "не ")."доступен для чтения
"; echo "$f ".(is_writable($f) ? "" : "не ")."доступен для записи
"; echo "размер $f в байтах - ".(filesize($f))."
"; echo "последнее изменение $f - ".(date("d M Y H:i", filemtime($f)))."
"; echo "последнее обращение к $f - ".(date("d M Y H:i", fileatime($f)))."
"; } ?>

РЕЗУЛЬТАТ ПРИМЕРА 3:

Top.php - файл top.php - не каталог top.php доступен для чтения top.php доступен для записи размер top.php в байтах - 732 последнее изменение top.php - 04 Oct 2005 20:21 последнее обращение к top.php - 20 Oct 2005 14:01

Внимание! С удаленными файлами эти функции не работают. Их можно применять только к локальной файловой системе.

Управление файлами

PHP содержит множество функций управления файлами. Наиболее употребимыми являются:

  • touch() - создает пустой файл с заданным именем. Если такой файл уже существует, то функция изменит дату модификации. Например: touch("ex1.txt");
  • copy() - копирует файл. Для копирования файлов в php применяется функция copy ($source, $result). Ей нужно передать лишь два параметра - источник $source и имя файла-копии - $result. Стоит отметить, что следует указывать полные адреса к файлам. Пример применения функции copy:

  • unlink() - удаляет заданный файл. Например:
  • fopen() - открывает локальный или удаленный файл и возвращает указатель на него. Указатель используется во всех операциях с содержимым файла. Аргументы: имя файла и режим открытия.
    r чтение. Указатель файла устанавливается на его начало
    r+ чтение и запись. Указатель файла устанавливается на его начало
    w запись. Указатель файла устанавливается на его начало. Все старое содержимое файла теряется. Если файл с указанным именем не существует, функция пытается его создать
    w+ чтение и запись. Указатель файла устанавливается на его начало. Все старое содержимое файла теряется. Если файл с указанным именем не существует, функция пытается его создать
    a запись. Указатель файла устанавливается на его конец. Если файл с указанным именем не существует, функция пытается его создать
    a+ чтение и запись. Указатель файла устанавливается на его конец. Если файл с указанным именем не существует, функция пытается его создать

    Например:

    $fp = fopen("http://www.php.net/", "r"); // для чтения $fp = fopen("ex1.txt", "w"); // для записи $fp = fopen("ex2.txt", "a"); // для добавления в конец

    Если открыть файл не удалось, то можно прервать выполнение программы. Например:

    $fp = fopen("ex1.txt", "w") or die ("Не удалось открыть файл");

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

    Пример 4

    Чтение строк из файла "; ?>
  • fread() - общая функция чтения из файла. Аргументы: указатель файла и количество считываемых символов.
  • fseek() - отступ от начала файла. Аргументы: указатель файла и смещение.

    Пример 5

    Вывод на экран второй половины файла
  • fputs() - запись строки в файл. Аргументы: указатель файла и строка.
  • fwrite() - полный аналог функции fputs() .

    Пример 6

    Запись и добавление в файл
  • flock() - блокирует файл, т.е. не позволяет другим пользователям читать этот файл или писать в него, пока тот, кто наложил блокировку не закончит работу с данным файлом. Аргументы: указатель файла и номер режима блокировки.

    Пример 7

    Блокировка файла

    Блокировка с помощью flock() не является абсолютной. С ней будут считаться только те программы, которые тоже используют эту функцию.

В PHP версии >= 4.3.0 появились новые удобные функции работы с файлами:

  • file_get_contents() - прочитать весь файл или URL
  • file_put_contents() - записать файл

Работа с каталогами

В PHP есть несколько функций для работы с каталогами:

  • mkdir() - создание каталога. Аргументы: путевое имя каталога и режим доступа. Режим доступа - восьмеричное число из трех цифр с ведущим нулем. Первая цифра - право доступа для владельца, вторая - для группы, третья - для всех остальных. В системе Windows режим доступа игнорируется. В системе UNIX определены следующие права доступа:

    Например, право полного доступа для владельца, чтения и запуска для группы и запуска для всех остальных:

    Mkdir("testdir", 0751);

  • rmdir() - удаление каталога. Аргумент: путевое имя каталога. Удалить можно лишь пустой каталог при наличии права на это. При успешном выполнении функция возвращает true .
  • opendir() - открытие каталога. Аргумент: путевое имя каталога. В случае возникновения ошибки функция возвращает false . Ошибка при открытии может быть вызвана тем, что каталог не существует или программа не имеет права его читать.
  • readdir() - чтение каталога. Аргумент: путевое имя каталога. Возвращает строку, содержащую имя найденного файла или подкаталога. По достижении конца каталога функция возвращает false .

    Пример 8

    Чтение каталога "; ?>

    Проверочное выражение цикла сработает не так, как хотелось бы, если в каталоге есть файл с именем "0". В таком случае имя "0" будет преобразовано в 0, что вызовет завершение цикла. Избежать подобного можно, если принять дополнительные меры безопасности, изменив проверочное выражение:

    Gettype($f = readdir($dh)) != "boolean"

    Помимо использования функция fgetc() fgets() fgetss(), Вы можете использовать
    $file = file($filename). Она читает $filename в массив($file).

    Пример:

    $file=file($filename); for ($i=0; $i<=count($file); $i++) { echo $file[$i], "
    "; }

Передача файла с сервера. Скачать файл. DownLoad.

Ручной Download, или как скриптом открыть пользователю окошко сохранения файла. Чтобы в браузере открылся диалог "Сохранить файл" с названием файла file.dat, скрипт должен послать такие заголовки:

Header("Content-Disposition: attachment; filename=file.dat"); header("Content-Type: application/x-force-download; name=\"file.dat\"");

Готовый пример отправки файла с диска:

Не мешало бы также ссылаться на скрипт как http://.../download.php?file.dat, иначе браузеры, основанные на Mozilla, могут попытаться записать файл как file.dat.php. или указать атрибут download: Скачать Примечание: Не используйте заголовок header("Cache-Control: no-cache") в таких скриптах, большинство версий Internet Explorer не смогут скачать файл.

Следующий пример скрипта демонстрирует как организовать поддержку докачки :

Предполагается, что $cd - путь к файлу, $fn - имя файла Как передать файл на сервер?

Функции для работы с каталогами

  • chdir() - Сменить каталог
  • boolean chdir (string str)

    Изменяет текущий каталог PHP на указанный в качестве параметра str. Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки

  • chroot() - Сменить корневой каталог
  • boolean chroot (string str)

    Изменяет корневой каталог текущего процесса на переданный в качестве параметра str. Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки..

    Замечание: Для Windows-платформ эта функция не реализована.

  • closedir() - Освободить дескриптор каталога
  • void closedir (resourse catalog)

    Закрывает поток, связанный с каталогом и переданный в качестве параметра catalog. Перед использованием данной функции, поток должен быть открыт с помощью функции opendir().

    dir - Класс directory

class dir { dir (string str) string path resource handle string read (void) void rewind (void) void close (void) }

Псевдо-объектно-ориентированный механизм для чтения каталога, переданного в параметре каталог. С момента открытия каталога становятся доступными два свойства класса. Свойство "handle" может быть использовано с другими функциями для работы с каталогами, например, с функциями readdir() , rewinddir() и closedir() . Свойство "path" содержит путь к открытому каталогу. Доступны три метода: read, rewind and close.

Пожалуйста, обратите внимание на способ, которым осуществляется проверка значения, возвращаемого методами класса dir() в примере, приведенном ниже. В этом примере проводится проверка значения на идентичность (выражения идентичны, когда они равны и являются одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл.

Пример кода:

handle."
\n"; echo "Путь: ".$d->path."
\n"; while (false !== ($entry = $d->read())) { echo $entry."
\n"; } $d->close(); ?>

Замечание: Порядок, в котором метод "read" возвращает элементы каталога, зависит от операционной системы.

Замечание: Также, PHP автоматически определяет внутренний класс Directory, что означает, что вы не сможете определять собственные классы с таким же именем.


  • getcwd() - Получить имя текущего рабочего каталога
  • string getcwd (void)

    Возвращает имя текущего рабочего каталога.


  • opendir() - Открыть каталог
  • resourse opendir (string path)

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

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

    Пример кода

    Начиная с версии PHP 4.3.0, параметр путь может также являться любым URL"ом, обращение к которому приводит к получению списка его файлов и каталогов. Однако, данный способ работает только при использовании url-упаковщика file://. В версии PHP 5.0.0 была добавлена поддержка url-упаковщика ftp://.


  • readdir - Получить элемент каталога по его дескриптору
  • string readdir (resource catalog)

    Возвращает имя следующего по порядку элемента каталога. Имена элементов возвращаются в порядке, зависящем от файловой системы.

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

    Пример кода

    Обратите внимание, что функция readdir() также возвращает элементы с именами, и, если вы не хотите получать эти значения, просто отбрасывайте их:

    Пример кода


  • rewinddir() - Сбросить дескриптор каталога
  • void rewinddir (resource catalog)

    Сбрасывает поток каталога, переданный в параметре catalog таким образом, чтобы тот указывал на начало каталога


  • scandir() - Получить список файлов и каталогов, расположенных по указанному пути
  • array scandir (string catalog [, int order])

    Возвращает массив, содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре catalog. Если каталог не является таковым, функция возвращает логическое значение FALSE и генерирует сообщение об ошибке уровня E_WARNING.

    По умолчанию, сортировка производится в алфавитном порядке по возрастанию. Если указан необязательный параметр order (равен 1), сортировка производится в алфавитном порядке по убыванию. Пример кода

    Результатом будет нечто вроде:

    Array ( => . => .. => bar.php => foo.txt => somedir) Array ( => somedir => foo.txt => bar.php => .. => .)

    Пример кода

    РЕЗУЛЬТАТ ПРИМЕРА:

    Array ( => . => .. => bar.php => foo.txt => somedir) Array ( => somedir => foo.txt => bar.php => .. => .)

    PHP - Работа с файлами

    Правильно работать с файлами должен уметь каждый программист. Данная статья ориентирована на начинающих PHP программистов, однако «сборник рецептов» будет полезен и продвинутым пользователям.

    Работа с файлами разделяется на 3 этапа:

    • Открытие файла.
    • Манипуляции с данными.
    • Закрытие файла.

    I. Открытие файла

    Для того чтобы открыть файл в среде PHP используется функция fopen(). Обязательными параметрами этой функции является имя файла и режим файла.

    Согласно документации PHP выделяют следующие виды режимов файлов:

    • r – открытие файла только для чтения.
    • r+ - открытие файла одновременно на чтение и запись.
    • w – создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
    • w+ - аналогичен r+, только если на момент вызова файла такой существует, его содержимое удаляется.
    • a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
    • a+ - открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.

    Примечание: в конце любой из строк может существовать еще один необязательный параметр: b или t. Если указан b, то файл открывается в режиме бинарного чтения/записи. Если же t, то для файла устанавливается режим трансляции перевода строки, т.е. он воспринимается как текстовый.

    Для демонстрации рассмотрим следующий сценарий:

    //Открывает файл в разных режимах

    $fp = fopen("counter.txt", "r"); // Бинарный режим

    $fp = fopen("counter.txt", "rt"); // Текстовый режим

    $fp = fopen("http://www.yandex.ru", "r");// Открывает HTTP соединение на чтение

    $fp = fopen("ftp://user:[email protected]", "w"); //Открываем FTP соединение с указанием логина и пароля

    II. Манипуляции с данными файла

    Записывать данные в файл при помощи PHP можно при помощи функции fwrite(). Это функция принимает 2 обязательных параметра и 1 необязательный. В качестве обязательных параметров выступает дескриптор файла и режим файла:

    $fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи

    $mytext = "Это строку необходимо нам записать\r\n"; // Исходная строка

    $test = fwrite($fp, $mytext); // Запись в файл

    If ($test)

    Echo "Данные в файл успешно занесены.";

    Else

    Echo "Ошибка при записи в файл.";

    Fclose($fp); //Закрытие файла

    Для построчного считывания файла используют функцию fgets(). Функция принимает 2 обязательных параметра:

    If ($fp)

    While (!feof($fp))

    $mytext = fgets($fp, 999);

    Echo $mytext."
    ";

    Else

    Fclose($fp);

    Примечание: В данном примере значение 999 определяет количество символов, которые будут считываться до тех пор, пока указатель не достигнет конца файла (EOF).

    Echo readfile("counter.txt");

    Также можно использовать функцию fpassthru() которая принимает 1 обязательный параметр. Перед использованием этой функции необходимо открыть файл в режиме чтения. По окончанию считывания файла функция автоматически закрывает файл(при этом дескриптор файла становиться недействительным).

    $fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения

    If ($fp)

    Echo fpassthru($fp);

    Else

    Echo "Ошибка при открытии файла";

    Очень часто встречаются ситуации, когда необходимо содержимое сайта считать в массив. Эту возможность предусматривает использование функции file(). При вызове этой функции, каждая строка файла сохранятся в отдельном элементе указанного массива.

    Примечание: Не следует применять функцию file() к двоичным файлам (binary-safe), т.к. она не является безопасной в плане считывания двоичных файлов, если при этом, где-то встретиться символ конца файла (EOF), то она не гарантирует вам чтение всего двоичного файла.

    $file_array = file("counter.txt"); // Считывание файла в массив $file_array

    // Работа с данными массива

    Примечание: Работа с массивами подробно описывается здесь, авторы: Мухаметшин Д.Ф., Симдянов И.В.

    В конце статьи, вы найдете хороший «сборник рецептов» по массивам, который дает решение многих проблем, с которыми ежедневно встречается веб-программист.

    авайте представим ситуацию, когда файл необходимо считать по символам. Для этого мы можем воспользоваться функцией fgetc(). Функция принимает единственный параметр. Функция полезна если нам необходимо найти какой-либо символ или количество одинаковых символов.

    $fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения

    If ($fp)

    While(!feof($fp))

    $char = fgetc($fp);

    If ($char == "с")

    $i = $i + 1;// Находим символ «с»

    Echo "Количество букв "c" в файле: ". $i;

    Else echo "Ошибка при открытии файла";

    III. Закрытие файла

    Закрытие файла происходить с помощью функции fclose(), которая принимает 1 обязательный параметр.

    $fp = fopen("counter.txt", "r");

    If ($fp)

    Echo "Файл открыт";

    Fclose($fp); // Закрытие файла

    Сборник рецептов

    1) Нам необходимо проверить существует ли тот или иной файл. Для этого мы воспользуемся функцией file_exists().

    myfile("counter.txt"); // Используем функцию myfile, передав в качестве аргумента имя файла

    function myfile($name) //Создаем функцию для проверки существования файла

    If (file_exists($name)) echo "Файл существует";

    Примечание: Функция file_exists не производит проверку файлов на удаленном веб-сервере. Для правильной работы функции, файл со скриптом должен находиться на том сервере, где и проверяемый файл.

    2) Определяем размер файла с помощью функции filesize()

    myfile("counter.txt");

    //Создаем функцию для проверки существования файла и определения размера файла

    function myfile($name)

    If (file_exists($name)) echo "Размер файла: ".filesize($name)." байт";

    Else echo "Файл не существует";

    3) Создание временного файла с помощью функции tmpfile()

    $myfile = tmpfile();

    // Записываем во временный файл

    Fwrite($myfile, "Эта строка записывается во временный файл.");

    Fseek($myfile, 0); // Устанавливаем указатель файла

    Echo fread($myfile, 1024); // выводим содержимое файла

    4) Вам необходимо определить количество строк в файле. Для этого используем функцию count()

    $fp = file("counter.txt");

    Echo "Количество строк в файле: ".count($fp);

    5) Нам необходимо использовать механизм блокировки файла

    $fp = fopen("counter.txt", "a");

    Flock($fp, LOCK_EX); // Блокирование файла для записи

    Fwrite($fp, "Строка для записи");

    Flock($fp, LOCK_UN); // Снятие блокировки

    Fclose($fp);

    6) Нам необходимо удалить определенную строку из файла

    $num_stroka = 5; //Удалим 5 строку из файла

    $file = file("counter.txt"); // Считываем весь файл в массив

    For($i = 0; $i < sizeof($file); $i++)

    If($i == $num_stroka) unset($file[$i]);

    $fp = fopen("counter.txt", "w");

    Fputs($fp, implode("", $file));

    Fclose($fp);

    7) Определение типа файла. Используем функцию filetype(), которая принимает единственный параметр

    $mytype = filetype("counter.txt");

    Echo "Тип файла: ".$mytype;

    После вызова строка может содержат одно из следующих значений:

    file – обычный файл

    dir – каталог

    fifo – fifo-канал

    block – блочно - ориентированное устройство

    char – символьно - ориентированное устройство

    unknown – неизвестный тип файла

    8) Если вы хотите просмотреть все параметры файла, то следует воспользоваться функцией stat()

    $filename = stat("counter.txt");

    Echo "

    ";
    

    Print_r($filename);

    Echo "

    ";

    9) Нам необходимо очистить файл, используем функцию ftruncate()

    $fp = fopen("counter.txt", "a"); //Открываем файл в режиме записи

    Ftruncate($fp, 0) // очищаем файл

    10) Нам необходимо узнать дату последнего изменения файла, используем функцию filectime(). Функция возвращает значение времени в форме Unix timestamp.

    Echo filectime("counter.txt");

    Если вы самостоятельно усваиваете работу с php, то важно научиться читать данные из файла и вводить в него изменения. Запись в файл php ведется для разработки веб-приложений, изменений серверной информации и запуска внешний программ и включений.

    Как работать с файлами php

    Если у файла указано такое расширение, то значит в себе он содержит программный код, написанный на одноименном языке программирования. Для того, чтобы вести изменения, вам необходимо будет установить на своем ПК один из программных редакторов:

    PHP Expert Editor;
    . Dreamweaver;
    . Eclipse PHP Development;
    . PHPEdit.

    Если вы создаете сайт, то необходимо часто использовать идентичные конструкции, которые удобно хранить в виде шаблонов в другом файле. Для этого лучше использовать include. После ввода этой функции необходимо сделать запись в файл php имени и расширения подключения, например, include 1.php. Эта конструкция поддерживает возможность множественного чтения подключаемого файла, и дополнительной особенностью является непрерывность исполнения кода при ошибке. Если что-либо пойдет не так, то код продолжит исполняться с новой строки.
    Таким образом, вы подключите файл к своему коду. Еще одним способом является ввод require. В отличие от вышеописанного include, файл подключается до начала выполнения программного кода, но обратиться к нему можно всего один раз.

    Проверка файла

    Перед тем, как сделать запись в файл php, необходимо убедится в том, что он существует, а затем открыть его и провести необходимое редактирование. Для этого можно использовать функцию file_exists(), если она подтвердит наличие, то в окне редактора будет возвращен ответ TRUE, в противном случае - FALSE.
    О том, что возможна запись данных в файл php, вас может известить иная функция is_file(). Она более надежна, чем file_exits, и большинство программистов для начала работы использует именно is_file. После того, как вы убедились в существовании файла, можно приступать к работе с ним.

    Внесение изменений в файл

    Первым инструментом, который можно использовать для внесения изменений в файл - fwrite (). Она записывает строки со следующим синтаксисом:

    Int - манипулятор;
    . String - переменная.

    Существует еще одна аналогичная этой функции - fputs(), которая является псевдонимом. Различий между этими инструментами нет, можно использовать по выбору один или другой. Для учеников более распространена fwrite, а практикующие программисты чаще всего используют fputs.

    Чтобы внести php запись в текстовый файл, необходимо соблюсти одно важное условие - он должен быть открыт для правок. Располагаться такой файл должен в папке с правами на запись.

    Для работы попытайтесь сначала открыть текстовый документ в программе, а затем уже вносить правки посредством обычных инструментов.

    // Открыть текстовый файл
    $f = fopen("text.txt", "w");
    // Записать строку текста
    fwrite($f, "Hello! Good day!");
    // Закрыть текстовый файл
    fclose($f);

    В этом примере text.txt - имя документа. Вы можете назвать его иначе: «Hello! Good day!» - пример текста, он может быть совершенно произвольным. Все изменения автоматически сохраняться в открытом файле.

    Отметим, что PHP - это общего назначения. Он интенсивно применяется для создания веб-приложений. Данное решение поддерживается большинством хостинг-провайдеров. Речь идет о лидере среди средств, которые применяются для создания веб-сайтов. Теперь вы знаете, как сделать запись в файл php.

    • Сергей Савенков

      какой то “куцый” обзор… как будто спешили куда то