Обновлено: 21.11.2024
Прежде чем вы сможете что-то сделать с файлом, он должен существовать! В этом уроке вы узнаете, как создать файл с помощью PHP.
В PHP файл создается с помощью команды, которая также используется для открытия файлов. Это может показаться немного запутанным, но мы попытаемся прояснить эту загадку.
В PHP для открытия файлов используется функция fopen. Однако он также может создать файл, если не находит файл, указанный в вызове функции. Таким образом, если вы используете fopen для несуществующего файла, он создаст его, учитывая, что вы открываете файл для записи или добавления (подробнее об этом позже).
Для правильной работы функции fopen необходимы две важные части информации. Во-первых, мы должны предоставить ему имя файла, который мы хотим открыть. Во-вторых, мы должны сообщить функции, что мы планируем делать с этим файлом (например, читать из файла, записывать информацию и т. д.).
Поскольку мы хотим создать файл, мы должны указать имя файла и указать PHP, что мы хотим записать в файл. Примечание. Мы должны сообщить PHP, что мы записываем в файл, иначе он не создаст новый файл.
Код PHP:
Файл "testFile.txt" должен быть создан в том же каталоге, где находится этот PHP-код. PHP увидит, что «testFile.txt» не существует, и создаст его после запуска этого кода. В этих трех строках кода много информации, давайте убедимся, что вы ее поняли.
$ourFileName = "testFile.txt";
Здесь мы создаем имя нашего файла "testFile.txt" и сохраняем его в строковой переменной PHP $ourFileName.
На самом деле этот фрагмент кода состоит из двух частей. Сначала мы используем функцию fopen и задаем ей два аргумента: имя нашего файла и сообщаем PHP, что мы хотим написать, передавая символ "w".
Во-вторых, функция fopen возвращает то, что называется дескриптором файла, что позволяет нам манипулировать файлом. Мы сохраняем дескриптор файла в переменной $ourFileHandle. Подробнее об дескрипторах файлов мы поговорим позже.
Закрываем файл, который был открыт. fclose принимает дескриптор файла, который нужно закрыть. Подробнее об этом мы поговорим в уроке закрытия файла.
Если вы пытаетесь запустить эту программу и у вас возникают ошибки, вы можете проверить, предоставили ли вы доступ к файлу PHP для записи информации на жесткий диск. Установка разрешений чаще всего выполняется с использованием FTP-программы для выполнения команды с именем CHMOD. Используйте CHMOD, чтобы позволить файлу PHP записать на диск, что позволит ему создать файл.
Сообщите об ошибке или прокомментируйте этот урок. Ваш вклад помогает Tizag улучшаться со временем!
В этой главе мы научим вас создавать и записывать в файл на сервере.
Создать файл PHP — fopen()
Функция fopen() также используется для создания файла. Возможно, это немного сбивает с толку, но в PHP файл создается с помощью той же функции, которая используется для открытия файлов.
Если вы используете fopen() для несуществующего файла, он создаст его, учитывая, что файл открыт для записи (w) или добавления (a).
В приведенном ниже примере создается новый файл с именем "testfile.txt". Файл будет создан в том же каталоге, где находится код PHP:
Пример
Разрешения для файлов PHP
Если у вас возникают ошибки при попытке запустить этот код, убедитесь, что вы предоставили своему файлу PHP доступ для записи информации на жесткий диск.
Запись PHP в файл — fwrite()
Функция fwrite() используется для записи в файл.
Первый параметр fwrite() содержит имя файла для записи, а второй параметр — записываемую строку.
В приведенном ниже примере несколько имен записываются в новый файл с именем "newfile.txt":
Пример
$myfile = fopen("newfile.txt", "w") или die("Невозможно открыть файл!");
$txt = "Джон Доу\n";
fwrite( $myfile, $txt);
$txt = "Джейн Доу\n";
fwrite($myfile, $txt);
fclose($myfile);
?> ?php
Обратите внимание, что мы дважды записали в файл "newfile.txt". Каждый раз, когда мы записывали в файл, мы отправляли строку $txt, которая сначала содержала «Джон Доу», а вторая содержала «Джейн Доу». Закончив писать, мы закрыли файл с помощью функции fclose().
Если мы откроем файл "newfile.txt", он будет выглядеть так:
Перезапись PHP
Теперь, когда файл "newfile.txt" содержит некоторые данные, мы можем показать, что происходит, когда мы открываем существующий файл для записи. Все существующие данные будут УДАЛЕНЫ, и мы начнем с пустого файла.
В приведенном ниже примере мы открываем наш существующий файл "newfile.txt" и записываем в него новые данные:
Пример
$myfile = fopen("newfile.txt", "w") или die("Невозможно открыть файл!");
$txt = "Микки Маус\n";
fwrite( $myfile, $txt);
$txt = "Минни Маус\n";
fwrite($myfile, $txt);
fclose($myfile);
?> ?php
Если мы сейчас откроем файл «newfile.txt", и Джон, и Джейн исчезли, и присутствуют только данные, которые мы только что записали:
Добавить текст PHP
Вы можете добавить данные в файл, используя режим "a". В режиме "a" текст добавляется в конец файла, а в режиме "w" старое содержимое файла переопределяется (и стирается).
В приведенном ниже примере мы открываем существующий файл "newfile.txt" и добавляем к нему текст:
Пример
$myfile = fopen("newfile.txt", "a") или die("Невозможно открыть файл!");
$txt = "Дональд Дак\n";
fwrite( $myfile, $txt);
$txt = "Гуфи-дурак\n";
fwrite($myfile, $txt);
fclose($myfile);
?> ?php
Если мы сейчас откроем файл "newfile.txt", мы увидим, что Дональд Дак и Гуфи Гуф добавлены в конец файла:
Полный справочник по файловой системе PHP
Полный справочник по функциям файловой системы см. в нашем полном справочнике по файловой системе PHP.
Создайте файл с именем hello.php и поместите его в корневой каталог вашего веб-сервера ( DOCUMENT_ROOT ) со следующим содержимым:
Эта программа чрезвычайно проста, и вам действительно не нужно использовать PHP для создания такой страницы. Все, что он делает, это отображает: Hello World, используя оператор эха PHP. Обратите внимание, что файл не обязательно должен быть исполняемым или каким-либо особенным. Сервер обнаруживает, что этот файл должен быть интерпретирован PHP, потому что вы использовали расширение «.php», которое сервер настроен для передачи в PHP. Думайте об этом как об обычном файле HTML, в котором есть набор специальных доступных вам тегов, которые делают много интересных вещей.
Смысл примера в том, чтобы показать специальный формат тега PHP. В этом примере мы использовали . Вы можете переходить в режим PHP и выходить из него в HTML-файле, подобном этому, где угодно. Дополнительные сведения см. в разделе руководства по базовому синтаксису PHP.
Примечание: примечание о переводе строки
Переводы строки не имеют большого значения в HTML, тем не менее, это хорошая идея, чтобы сделать ваш HTML красивым и чистым, вставив переводы строк. A перевод строки, который следует сразу после закрытия ?>, будет удален PHP. Это может быть чрезвычайно полезно, когда вы вставляете много блоков PHP или включаете файлы, содержащие PHP, которые не должны ничего выводить. В то же время это может немного сбивать с толку. Вы можете поставить пробел после закрывающего ?>, чтобы вывести пробел и перевод строки, или вы можете поместить явный перевод строки в последнее эхо/печать из вашего блока PHP.
Примечание: Примечание по текстовым процессорам
Текстовые процессоры, такие как StarOffice Writer, Microsoft Word и Abiword, не оптимальны для редактирования файлов PHP. Если вы хотите использовать его для этого тестового сценария, убедитесь, что вы сохранили файл как обычный текст, иначе PHP не сможет прочитать и выполнить сценарий.
Теперь, когда вы успешно создали работающий PHP-скрипт, пришло время создать самый известный PHP-скрипт! Вызовите функцию phpinfo(), и вы увидите много полезной информации о вашей системе и настройках, например, о доступных предопределенных переменных, загруженных модулях PHP и настройках конфигурации. Найдите время и просмотрите эту важную информацию.
Вывод: в этом руководстве вы узнаете несколько способов создания нового файла в PHP.
Создание файла с помощью функции fopen()
Функция fopen() открывает файл. Он также создает файл, если файл не существует. Вот синтаксис функции fopen():
Чтобы создать новый файл с помощью функции fopen(), укажите $filename и один из следующих режимов:
Режим | Указатель файла |
---|
'w+' | В начале файла |
'a' | В конце файла |
'a+' | В конце файла |
'x' | В начале файла< /td> |
'x+' | В начале файла |
'c' | В начале файла |
'c+' | В начале файла |
таблица>
За исключением 'a' и 'a+' указатель файла помещается в начало файла.
Если вы хотите создать двоичный файл, вы можете добавить символ "b" к аргументу $mode. Например, 'wb+' открывает двоичный файл для записи.
В следующем примере функция fopen() используется для создания нового двоичного файла и записи в него некоторых чисел:
- Сначала определите массив из пяти чисел от 1 до 5.
- Во-вторых, используйте функцию fopen() для создания файла number.dat.
- В-третьих, используйте функцию fputs() для записи каждого числа из массива $numbers в файл.
- Наконец, закройте файл с помощью функции fclose().
Создание файла с помощью функции file_put_contents()
Функция file_put_contents() записывает данные в файл. Вот синтаксис функции file_put_contents():
Если файл, указанный в $filename, не существует, функция создает файл.
Функция file_put_contents() идентична последовательному вызову функций fopen() , fputs() и fclose() для записи данных в файл.
В следующем примере веб-страница загружается с помощью функции file_get_contents() и записывается HTML в файл:
В этом уроке мы изучим работу с файлами в PHP. Я покажу вам, как создавать, читать, записывать и удалять файлы в PHP с помощью встроенных функций обработки файлов.
Работа с файлами — это то, что вам, как разработчику PHP, придется делать очень часто.
- настраиваемые инструменты ведения журналов и отладки
- хранилище конфигурации приложения
- кэширование внешнего интерфейса и приложений
- поддержка локализации
- и многое другое
PHP предоставляет несколько функций обработки файлов, которые позволяют выполнять различные операции, например:
- создать и открыть файл
- записать в файл
- чтение из файла
- удалить файл
- закрыть файл
Сегодня мы рассмотрим каждую файловую операцию вместе с примерами их использования. Я бы посоветовал вам опробовать примеры из этого руководства по ходу выполнения, чтобы вы действительно могли изучить и понять, как они работают. И если что-то не работает, как вы ожидали, не стесняйтесь публиковать свои запросы, используя ленту в конце этого руководства.
Как создать и открыть файл
В этом разделе мы увидим, как создать и открыть файл.
Когда дело доходит до создания файла, чаще всего вы будете использовать функцию fopen. Использование функции fopen для создания файла может показаться немного запутанным. На самом деле функция fopen делает две вещи: создает файл, если он не существует, а также открывает его для чтения или записи.
Давайте рассмотрим следующий пример, чтобы понять, как это работает.
В приведенном выше примере функция fopen проверит, существует ли файл /home/tutsplus/files/tmp.txt, и, если он существует, откроет его для записи. Указав 'w' во втором аргументе, мы указываем, что будем писать в файл. Если файл не существует, он будет создан сразу. Здесь важно отметить, что каталог /home/tutsplus/files/ в приведенном выше примере должен быть доступен для записи пользователем веб-сервера, чтобы функция fopen могла создать файл.
Первый аргумент функции fopen — это имя файла, который вы хотите открыть. В приведенном выше примере мы указали имя файла /home/tutsplus/files/tmp.txt в первом аргументе. Опять же, важно отметить, что мы указали абсолютный путь.
Второй аргумент — это режим, который указывает тип доступа, который вам требуется для открытого файла. Функция fopen предоставляет различные режимы, которые вы можете выбрать. Например:
- используйте режим r, чтобы открыть файл для чтения
- режим r+ для чтения и записи
- режим чтения и добавления
В нашем примере мы использовали режим w, который открывает файл /home/tutsplus/files/tmp.txt только для записи. Не стесняйтесь просматривать официальную документацию, чтобы увидеть различные режимы, поддерживаемые функцией fopen.
fopen возвращает указатель файловой системы, который используется для других файловых функций, таких как чтение и запись.
Как открыть удаленные файлы?
Функция fopen предназначена не только для локальных файлов. Он также поддерживает другие протоколы и может открывать файлы из любой точки вашей сети или Интернета. Если вы включили директиву allow_url_fopen в PHP, вы также можете открывать удаленные файлы.
Очень действительно важно отметить, что когда вы включаете директиву allow_url_fopen, вы создаете некоторые риски для безопасности, поскольку она открывает дверь для удаленного выполнения файлов и других атак. Поэтому примите дополнительные меры безопасности в своем приложении, если собираетесь включить эту директиву.
Как записать файл с помощью PHP
Существует несколько способов записи в файл с помощью PHP.
Функция fwrite
Прежде всего, это функция fwrite, которая позволяет записывать содержимое строки в файловый поток, на который ссылается дескриптор файла. Давайте рассмотрим следующий пример, чтобы понять, как это работает.
Во-первых, мы открыли файл /home/tutsplus/files/tmp.txt в режиме +, который открывает его для чтения и записи, с указателем файла, помещенным в конец файла. Таким образом, наш контент будет добавлен в конец файла после любого другого содержимого. Затем мы использовали функцию fwrite для записи строки.
Первым аргументом функции fwrite является указатель файловой системы, возвращаемый функцией fopen. Именно так fwrite узнает, куда записывать данные. И второй аргумент — это строка, которую мы хотим записать в файл.Как видно из приведенного выше примера, вы можете использовать функцию fwrite несколько раз, чтобы записать серию строк перед тем, как закрыть файл.
Наконец, мы использовали функцию fclose, чтобы закрыть файл. Он принимает только один аргумент, указатель файла, который вы хотите закрыть. Всегда рекомендуется закрывать файлы с помощью функции fclose после завершения операций с файлами.
Функция file_put_contents: ярлык PHP для записи в файлы
В предыдущем разделе мы обсуждали функцию fwrite, которая используется для записи в файл. Вы могли заметить, что если вы хотите записать в файл, вам нужно открыть его с помощью функции fopen в первую очередь. После этого вам нужно использовать функцию fwrite, чтобы записать ваши данные в файл, и, наконец, вам нужно использовать функцию fclose, чтобы закрыть файл.
Если это звучит для вас слишком сложно, есть ярлык: file_put_contents . Функция file_put_contents позволяет записывать данные в файл одним вызовом.
Давайте посмотрим, как это работает.
Первый аргумент функции file_put_contents — это имя файла, а второй аргумент — это строка, которую вы хотите записать в файл. Если файл не существует, он будет создан.
Как видите, функция file_put_contents — это ярлык, когда вы просто хотите записать фрагмент данных в файл.
Как читать из файла в PHP
Теперь вы знаете, как создавать и записывать в файл. В этом разделе я покажу вам, как читать из файла.
Функция fread
Функция fread позволяет читать из файла. Это похоже на fwrite , но вам нужно указать длину в байтах, которую вы хотите прочитать.
Давайте рассмотрим следующий пример, чтобы понять, как это работает.
Поскольку мы хотим прочитать файл /home/tutsplus/files/tmp.txt, мы открыли его в режиме r. Затем мы использовали функцию fread для чтения всего содержимого файла в переменную $content.
Первым аргументом функции fread является указатель на файловую систему, чтобы знать, откуда читать. Второй аргумент — это длина в байтах, которую вы хотите прочитать из файла. В нашем случае мы хотим прочитать все содержимое файла /home/tutsplus/files/tmp.txt, поэтому мы использовали функцию размера файла для измерения размера файла.
Функция file_get_contents: ярлык PHP для чтения из файлов
В предыдущем разделе мы обсуждали функцию fread, которая позволяет читать файл, указывая длину в байтах, которую вы хотите прочитать. Если вы хотите прочитать сразу весь файл, есть функция, которая позволяет вам это сделать: file_get_contents .
Давайте посмотрим на функцию file_get_contents в действии!
Как видите, использовать функцию file_get_contents довольно просто — просто укажите имя файла в первом аргументе.
Как удалить файл в PHP
В этом последнем разделе мы увидим, как можно удалять файлы. Чтобы удалить файл в PHP, используйте функцию unlink. Давайте рассмотрим пример, чтобы увидеть, как это работает.
Первый аргумент функции отмены связи — это имя файла, который вы хотите удалить. Функция отмены связи возвращает TRUE или FALSE в зависимости от того, была ли операция удаления успешной.
Заключение
В этом посте мы обсудили основы работы с файлами в PHP. На протяжении всей статьи мы обсуждали различные операции, которые вы можете выполнять с помощью файловых функций в PHP. Если у вас есть какие-либо вопросы или предложения, не стесняйтесь публиковать их, используя канал ниже!
Изучите PHP с помощью бесплатного онлайн-курса
Если вы хотите изучить PHP, ознакомьтесь с нашим бесплатным онлайн-курсом по основам PHP!
В этом курсе вы изучите основы программирования на PHP. Вы начнете с основ, узнаете, как работает PHP, и напишете простые циклы и функции PHP. Затем вы перейдете к классам программирования для простого объектно-ориентированного программирования (ООП). Попутно вы освоите все самые важные навыки написания приложений для Интернета: у вас будет возможность попрактиковаться в ответах на запросы GET и POST, синтаксическом анализе JSON, аутентификации пользователей и использовании базы данных MySQL.
Читайте также: