Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, Wordpress, Bootstrap
Всем привет!
Продолжаем изучать основы PHP с нуля! В этом уроке я расскажу вам про дополнительные возможности по работе с файлами, а именно:
-проверить наличие файла;
-узнать размер файла;
-создать временный файл;
Проверить наличие файла на php.
Были у меня случаи, когда нужно было проверить кодом наличие файла.
Если и у вас есть необходимость проверить кодом наличие файла, воспользуйтесь функцией - file_exists().
Синтаксис:
file_exists("название файла")
На практике это будет выглядеть вот так:
<?php if (file_exists("file.txt")) { echo "Файл существует"; } else { echo "Файл не существует"; } ?>
Если файл «file.txt» существует, то на экране вы увидите сообщение «Файл существует»; если файла такого нет, тогда на экране появится противоположный текст «Файл не существует».
Вы обратили внимание, что я использовал функцию file_exists() в конструкции if else?
Внимание:Может случиться так, что папка может иметь имя «file.txt» и скрипт воспримет, что файл существует, хотя это не файл, а папка... Поэтому лучше использовать функцию is_file().
<?php if (is_file ("file.txt ")) { echo "Это файл"; } else { echo "Это не файл"; } ?>
Узнать размер файла на php
Если нужно узнать размер файла, воспользуйтесь функцией filesize():
Синтаксис:
filesize("название файла");
На практике это будет выглядеть вот так:
<?php $stepkinblog = "file.txt"; echo "Размер файла $stepkinblog - ".filesize($stepkinblog)." байт"; ?>
В результате вы увидите на экране:
Размер файла file.txt - 96 байт
Создание временного файла, сделать в нем запись и вывести содержимое на экран.
Чтобы записать текст во временный файл, воспользуйтесь функцией tmpfile()
<?php $stepkinblog = tmpfile(); fwrite($stepkinblog, "Эта строка записывается во временный файл."); // Записываем во временный файл fseek($stepkinblog, 0); // Устанавливаем указатель файла echo fread($stepkinblog, 1024); // выводим содержимое файла ?>
tmpfile() – Создаёт временный файл с уникальным именем, открывая его в режиме чтения и записи (w+).
fseek () – указатель положения в файле. Пример:
fseek($stepkinblog, 0);
fread() – Бинарно-безопасное чтение файла. Пример:
fread($stepkinblog, 1024);
1024 – Чтение останавливается при достижении 1024 байтов
В результате вы увидите на экране текст, записанный во временном файле:
Эта строка записывается во временный файл.
Вывести количество строк на экран
Если вам нужно определить количество строк в файле, воспользуйтесь функцией count().
Синтаксис:
count("название файла");
Пример:
<?php $stepkinblog = file("file.txt"); echo 'Количество строк в файле: '.count($stepkinblog); ?>
В результате вы увидите на экране вот такой текст:
Количество строк в файле: 1
Результат «1», так как в файле «file.txt» только одна строка.
Как вывести часть строки PHP?
Если вам нужно вывести только часть строки, воспользуйтесь функцией substr():
substr("текст", начинающая_позиция, длина_текста);
Пример:
<?php echo substr("Hello, world!", 4, 1); ?>
Так как отсчет в тексте начался с «4» и длину текста я указал «1», то результат на экране будет:
o
Можно добавить в конце какие-то символы показывающие, что должно быть продолжение в тексте, например, троеточие (…) .
Пример:
<?php echo substr("Hello, world!", 0, 9)."..."; ?>
Результат:
Hello, wo...
Как вывести определенную строку из файла на PHP?
Если вам нужно вывести определенную строку из файла на PHP, тогда воспользуйтесь вот такой конструкцией:
<?php // file() - Читает содержимое файла и помещает его в массив $fopen=file("file.txt"); // номер строки в php считает с 0, //т.е. данный скрипт выведет вторую строку) // вывод 2 строки echo "$fopen[1]"; ?>
Если в файле «file.txt» содержится две строки, тогда на экране вы увидите вторую строку.
file() - Читает содержимое файла и помещает его в массив
$fopen[1] – если у вас возник вопрос, что это такое, тогда вам следует вернуться и повторить урок массивы php.
Полный пример с записью текста в файл:
<?php // file() - Читает содержимое файла и помещает его в массив $text = "1 строка. Я рад вас видеть на блоге StepkinBlog.ru 2 строка. - StepkinBlog.ru 3 строка. Я рад"; // открываем файл, если файл не существует, //делается попытка создать его $fp = fopen("StepkinBlog-ru.txt", "w"); // записываем в файл текст fwrite($fp, $text); // закрываем файл fclose($fp); // читаем файл в массив $fopen=file("StepkinBlog-ru.txt"); // номер строки в php считает с 0, //т.е. данный скрипт выведет вторую строку) // вывод 2 строки echo "$fopen[1]"; ?>
В результате на экране вы увидите:
2 строка. - StepkinBlog.ru
Как удалить определенную строку из файла на PHP?
Если вам нужно удалить любую строку в файле, воспользуйтесь вот такой конструкцией:
<?php $num_stroka = 1; //Удалим 2 строку из файла $file = file("stepkinblog-ru.txt"); // Считываем весь файл в массив unset($file[$num_stroka]); //удаление 2 строки $fp = fopen("stepkinblog-ru.txt", "w"); fputs($fp, implode("", $file)); fclose($fp); ?>
Давайте в примере создадим файл, сделаем там запись в три строки и потом удалим любую из строк и все это сделаем через код php:
<?php // строка, которую будем записывать $text = "1 строка. Я рад вас видеть на блоге stepkinblog.ru <br> 2 строка. - stepkinblog.ru<br> 3 строка. Я рад"; // открываем файл, если файл не существует, //делается попытка создать его $fp = fopen("stepkinblog-ru.txt", "w"); // записываем в файл текст fwrite($fp, $text); // закрываем файл fclose($fp); $num_stroka = 1; //Удалим 2 строку из файла $file = file("stepkinblog-ru.txt"); // Считываем весь файл в массив unset($file[$num_stroka]); //удаление 2 строки $fp = fopen("stepkinblog-ru.txt", "w"); fputs($fp, implode("", $file)); fclose($fp); // выводим содержание файла на экран браузера readfile("stepkinblog-ru.txt"); ?>
Можно и так:
<?php // строка, которую будем записывать $text = "1 строка. Я рад вас видеть на блоге stepkinblog.ru <br> 2 строка. - stepkinblog.ru<br> 3 строка. Я рад"; // открываем файл, если файл не существует, //делается попытка создать его $fp = fopen("stepkinblog-ru.txt", "w"); // записываем в файл текст fwrite($fp, $text); // закрываем файл fclose($fp); $file = file("stepkinblog-ru.txt"); // Считываем весь файл в массив unset($file[1]); //удаление 2 строки $fp = fopen("stepkinblog-ru.txt", "w"); fputs($fp, implode("", $file)); fclose($fp); // выводим содержание файла на экран браузера readfile("stepkinblog-ru.txt"); ?>
В чем разница этих двух вариантов? Предлагаю поискать самостоятельно для лучшего изучения кода.
Итак, результат на экране будет таким:
1 строка. Я рад вас видеть на блоге stepkinblog.ru
3 строка. Я рад
Еще раз повторюсь, что отсчет начинается с нуля, то есть, если бы вы захотели удалить первую строку, то нужно было прописать в массиве «0»:
unset($file[0]); //удаление 1 строки
Для первого кода так:
$num_stroka = 0; //Удалим 1 строку из файла $file = file("stepkinblog-ru.txt"); // Считываем весь файл в массив unset($file[$num_stroka]); //удаление 1 строки
Я думаю, всем ясно. Двигаемся дальше.
Как очистить файл на PHP?
Если вам нужно очистить всё содержимое файла, тогда воспользуйтесь функцией ftruncate().
Синтаксис:
ftruncate (дескриптор_файла, размер_файла)
- дескриптор_файла - это имя файл, который нужно очистить (файл должен быть открыт для записи «fopen()»);
- размер_файла – это размер файла, до которого он будет обрезан. Значение «0», файл будет полностью стертый.
Пример:
<?php $fp = fopen("stepkinblog-ru.txt", 'a'); //Открываем файл в режиме записи ftruncate($fp, 0) // очищаем файл ?>
В результате, если файл «stepkinblog-ru.txt» был чем-то заполнен, то после запуска скрипта файл будет пустым. Не верите? Проверьте. Откройте файл «stepkinblog-ru.txt».
Как узнать дату последнего изменения на PHP?
Чтобы узнать дату последнего изменения файла, используйте функцию filemtime().
<?php $filename = "stepkinblog-ru.txt"; echo "В последний раз файл $filename был изменен: " . date ("F d Y H:i:s.", filemtime($filename)); ?>
Результат:
В последний раз файл stepkinblog-ru.txt был изменен: February 11 2019 13:14:13.
На сегодня все!
Подписывайтесь на обновления блога stepkinblog.ru, если не хотите пропустить уроки по основам PHP!
Здравствуйте! Очень хотелось бы узнать как вы сделали проверку правильности и неправильности каждого вопроса и вывод количества результата правильных и неправильных ответов в одном и том же файле (test-bootstrap-3) при нажатии на кнопку "Посмотреть результат" (http://stepkinblog.ru/wp-content/osnovi-bootstrap3/test-bootstrap-3/). Как конкретно это реализовать на PHP?
P.S Буду очень благодарен если поделитесь)
Ответить
17 мая, 2019 at 21:40
Здравствуйте!
Использовал if else.
Если вопрос актуален, могу в комментарии выложить код
Ответить