Пока я творю, я живу!
Блог посвящен: 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.top
2 строка. - StepkinBlog.top
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.top
Как удалить определенную строку из файла на 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.top <br>
2 строка. - stepkinblog.top<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.top <br>
2 строка. - stepkinblog.top<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.top
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.top, если не хотите пропустить уроки по основам PHP! 
Здравствуйте! Очень хотелось бы узнать как вы сделали проверку правильности и неправильности каждого вопроса и вывод количества результата правильных и неправильных ответов в одном и том же файле (test-bootstrap-3) при нажатии на кнопку "Посмотреть результат" (https://stepkinblog.top/wp-content/osnovi-bootstrap3/test-bootstrap-3/). Как конкретно это реализовать на PHP?
P.S Буду очень благодарен если поделитесь)
Здравствуйте!
Использовал if else.
Если вопрос актуален, могу в комментарии выложить код