- Работа с файлами в PHP
- Открытие файла с помощью функции PHP fopen()
- Закрытие файла
- Чтение из файлов с помощью функции PHP fread()
- Чтение фиксированного количества символов
- Чтение всего содержимого файла
- Запись файлов с использованием функции PHP fwrite()
- Переименование файлов с помощью функции PHP rename()
- Удаление файлов с помощью функции PHP unlink()
- Функции файловой системы PHP
- Очистить файл по нажатию
- Очистить .txt
Работа с файлами в PHP
Прочитав эту статью, вы узнаете, как создавать, получать доступ и управлять файлами на веб-сервере с помощью функции PHP fread и другими.
Открытие файла с помощью функции PHP fopen()
Для работы с файлом сначала нужно его открыть функцией fopen() . Ее синтаксис:
Первый параметр, передаваемый в fopen() , это имя файла, который нужно открыть, а второй — режим открытия. Например:
Файл может быть открыт в одном из следующих режимов:
Режим | Что он делает |
R | Открывает файл только для чтения. |
r+ | Открывает файл для чтения и записи. |
W | Открывает файл только для записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
w+ | Открывает файл для чтения и записи и очищает содержимое файла. Если файл не существует, PHP попытается его создать. |
A | Открывает файл только для записи. Сохраняет содержимое файла, записывая его в конец файла. Если файл не существует, PHP попытается его создать. |
a+ | Открывает файл для чтения и записи. Сохраняет содержимое файла, записывая его в конец файла. Если файл не существует, он будет создан. Можно использовать вместо PHP fread () |
X | Открывает файл только для записи. Возвращает значение FALSE и генерирует ошибку, если файл уже существует. Если файл не существует, PHP попытается его создать. |
x+ | Открывает файл для чтения и записи; в противном случае имеет такое же поведение, как «x». |
Если вы попытаетесь открыть файл, который не существует, PHP сгенерирует сообщение с предупреждением. Чтобы избежать этого, необходимо выполнять простую проверку, существует ли файл или нет, прежде чем пытаться получить к нему доступ. Это делается с помощью функции PHP file_exists() :
Совет . Операции с файлами и папками часто сопряжены с ошибками. Поэтому рекомендуется применить форму проверки ошибок, чтобы при их возникновении скрипт обработал ошибку.
Закрытие файла
Как только вы закончите чтение файла с помощью PHP fread , его нужно закрыть. Для этого используется функция fclose() :
Примечание . Хотя PHP автоматически закрывает все открытые файлы, когда скрипт завершается, рекомендуется закрыть файл после выполнения всех операций.
Чтение из файлов с помощью функции PHP fread()
Теперь вы знаете, как открывать и закрывать файлы. В следующем разделе вы узнаете, как читать данные из файла. PHP включает в себя сразу несколько функций для чтения данных из файла. За одну операцию можно считать, как один символ, так и весь файл.
Чтение фиксированного количества символов
Функция PHP fread() может использоваться для чтения заданного количества символов из файла. Базовый синтаксис функции:
fread(дескриптор_файла, длина_в_байтах)
Она принимает два параметра — дескриптор файла и количество байтов, которые должны быть считаны. В следующем примере мы считываем 20 байтов из файла data.txt , включая пробелы. Предположим, data.txt содержит абзац текста » The quick brown fox jumps over the lazy dog «:
Приведенный выше пример даст следующий результат:
Чтение всего содержимого файла
Функция fread() может использоваться в связке с функцией filesize() для полного считывания всего файла. filesize() возвращает размер файла в байтах. PHP fread пример:
Приведенный выше пример даст следующий результат:
The quick brown fox jumps over the lazy dog.
Самый простой способ прочитать все содержимое файла — это функция readfile() . Она позволяет считать содержимое файла, не открывая его. Следующий пример даст тот же результат, что и предыдущий пример:
Приведенный выше пример даст следующий результат:
The quick brown fox jumps over the lazy dog.
Другой способ прочитать все содержимое файла, не открывая его — это функция file_get_contents() . Она принимает имя и путь к файлу и считывает весь файл в строковую переменную. Пример без PHP fread :
Еще один способ считывания всех данных из файла — это функция file() . Она работает аналогично функции file_get_contents() , но возвращает содержимое как массив строк, а не одну строку. Каждый элемент возвращаемого массива соответствует строке в файле.
Чтобы обработать данные файла, необходимо выполнить обработку массива через цикл foreach . В следующем примере, мы считываем файл в массив и затем отображаем его с помощью цикла:
Запись файлов с использованием функции PHP fwrite()
Можно записать данные в файл с помощью функции PHP fwrite() . Ее синтаксис:
fwrite(дескриптор_файла, строка)
Функция fwrite() принимает два параметра: дескриптор файла и строку данных, которые должны быть записаны:
В приведенном выше примере, если файл note.txt не существует, PHP автоматически создаст его и запишет данные. Но если note.txt уже существует, PHP перед записью новых данных стирает содержимое этого файла. Если вы просто хотите добавить файл и сохранить существующее содержимое, используйте режим a вместо w .
Альтернативный способ – file_put_contents() . Это аналог функции file_get_contents() , который предоставляет простой способ записи данных в файл без необходимости его открытия. Эта функция принимает имя и путь к файлу с данными, которые должны быть записаны. Например ( похожий на PHP fread пример ):
Если файл, указанный в функции file_put_contents() , уже существует, PHP по умолчанию перезапишет его. Если вы хотите сохранить содержимое файла, можно передать специальный флаг FILE_APPEND в качестве третьего параметра file_put_contents() . Тогда функция добавит новые данные в файл, а не перепишет их. Пример:
Переименование файлов с помощью функции PHP rename()
После прочтения с помощью php fread() файл можно переименовать файл или каталог, используя функцию PHP rename() , например:
Удаление файлов с помощью функции PHP unlink()
Можно удалять файлы или папки с помощью функции PHP unlink() , например:
Функции файловой системы PHP
В приведенной ниже таблице представлен обзор других полезных функций, которые можно использовать для динамического чтения и записи файлов ( альтернатива PHP fread() и другим функциям ):
Функция | Описание |
fgetc() | Считывает один символ за раз. |
fgets() | Считывает одну строку за раз. |
fgetcsv() | Считывает строку разделенных запятыми значений. |
filetype() | Возвращает тип файла. |
feof() | Проверяет, достигнут ли конец файла. |
is_file() | Проверяет, является ли файл стандартным файлом. |
is_dir() | Проверяет, является ли файл каталогом. |
is_executable() | Проверяет, является ли файл исполняемым. |
realpath() | Возвращает канонизированный абсолютный путь к файлу. |
rmdir() | Удаляет пустую директорию. |
Очистить файл по нажатию
Есть поле ввода и 2 кнопки. 1 записывает в файл текст из поля, 2 должна очищать файл при нажатии.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
if(isset($_POST['submiter'])) // если отправили форму. то { $info = $_POST['info'] . "
"; // получаем значение текстового поля и.. $f = fopen('file.html','a+'); // открываем файл для записи в конец =) fputs($f,$info); // записываем текстовое значение поля в файл fclose($f); // закрываем файл. } ?> ftruncate($f, 0); ?>">
Очистить форму по нажатию клавиши
Есть какой-нибудь метод для очистки формы? То есть на форме есть текст, кнопки и т.д. А по нажатию.
Очистить edit по нажатию кнопки
Здравствуйте Товарищи! Как сделать чтобы после ввода текста в edit при нажатии кнопки исчезал текст.
Нужно по нажатию кнопки очистить историю браузера ‘вперед’.
Дело вот в чем. Нужно в какой-то момент очистить историю странички браузера. К примеру, есть.
Через DBGrid изменить данные в ячейке, и по нажатию кнопки очистить все таблицы БД
как можно самым примитивным способом через DBGrid изменить данные в ячейке. и по нажатию кнопки.
Очистить .txt
Как очистить все файлы с расширением .txt в папке за исключением некоторых
Здравствуйте. Подскажите пожалуйста, желательно с примером, как удалить всё содержимое с файлов с.
Как очистить содержимое конкретного файла(txt) по клику на кнопке?
Допустим дан файл myf.txt, нужно его очистить при помощи php при нажатии на кнопку в веб-документе?
Я сохраняю html как текст, а как txt очистить от тегов?
напр. в txt <HTML> ТУТ любой Текст </HTML> должно получиться: Тут любоай текст
В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
Программным путем: 1. В папке С:\temp создайте папки К1 и К2. 2. В папке К1: a) создайте файл.
if(isset($_POST['del'])) { file_put_contents("core/app/Console/Commands/log.txt", ""); }
Сообщение от andyyy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
form method="POST"> textarea style="padding-bottom:1px ; font-size:16px; margin-bottom: 10px; height: 400px; width: 100%;" name="del"> @php echo file_get_contents('core/app/Console/Commands/log.txt'); @endphp /textarea>br> @php if(isset($_POST['del'])) < file_put_contents("core/app/Console/Commands/log.txt", ""); >@endphp input class="btn btn-default" type="submit" name="del" value="Очистить"> /form>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
form method="POST"> textarea style="padding-bottom:1px ; font-size:16px; margin-bottom: 10px; height: 400px; width: 100%;" name="del"> @php echo file_get_contents('core/app/Console/Commands/log.txt'); if(isset($_POST['del'])) < file_put_contents("core/app/Console/Commands/log.txt", ""); >@endphp /textarea>br> input class="btn btn-default" type="submit" name="del" value="Очистить"> /form>