RUS | ANG | |

StepkinBlog.ru

Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, Wordpress, Bootstrap

Главная » Основы PHP » Работа с файлами-3 (дополнительные функции и возможности). Основы PHP с нуля. Урок №21

29.04.2019


22:34


5196


2


Работа с файлами-3 (дополнительные функции и возможности). Основы PHP с нуля. Урок №21

Работа с файлами-3 (дополнительные функции и возможности). Основы PHP с нуля. Урок №21

Всем привет!
Продолжаем изучать основы 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! :coffe:



Случайные записи:

  1. Как задать цвет в CSS. Основы CSS для начинающих. Урок №8
  2. Горизонтальное меню. Основы bootstrap 3 для начинающих. Урок №10
  3. Работа с файлами-2 (удаление, копирование, переименование и перемещение файлов). Основы PHP с нуля. Урок №20
  4. Как сделать фон в HTML-странице. Основы HTML для начинающих. Урок №12
  5. Позиционирование блоков CSS. Основы CSS для начинающих. Урок №14

Последние записи рубрики:

  1. Создание, проверка и удаление каталога (папки) посредством кода PHP. Основы PHP с нуля. Урок №23
  2. Работа с файлами-4. Отправка файла на сервер. Основы PHP с нуля. Урок №22
  3. Работа с файлами-2 (удаление, копирование, переименование и перемещение файлов). Основы PHP с нуля. Урок №20
  4. Работа с файлами-1 (создание, открытие, отображение, запись и закрытие файлов). Основы PHP с нуля. Урок №19

2 ответа(ов) на статью: “Работа с файлами-3 (дополнительные функции и возможности). Основы PHP с нуля. Урок №21”

  1. Валерий says:

    Здравствуйте! Очень хотелось бы узнать как вы сделали проверку правильности и неправильности каждого вопроса и вывод количества результата правильных и неправильных ответов в одном и том же файле (test-bootstrap-3) при нажатии на кнопку "Посмотреть результат" (http://stepkinblog.ru/wp-content/osnovi-bootstrap3/test-bootstrap-3/). Как конкретно это реализовать на PHP?
    P.S Буду очень благодарен если поделитесь)

    Ответить

    Степка ответил(а) на комментарий:

    Здравствуйте!
    Использовал if else.
    Если вопрос актуален, могу в комментарии выложить код

    Ответить

Добавить комментарий

;-) :| :x :twisted: :smokes: :smile: :shock: :sad: :rose: :roll: :razz: :pop-corne: :oops: :o :mrgreen: :lol: :idea: :grin: :gazeta: :evil: :cry: :cool: :coffe: :arrow: :???: :?: :!:

Подписаться на обновления:

Подпишись на обновления моего блога через e-m@il:

@

Реклама на блоге:

Мои цели на
2019 год:

Довести количество статей до 150

Доделать этот блог

Закончить тему «Основы CSS»

Закончить тему «Основы PHP»

Начать тему «Основы JavaScript»

Добиться посещаемости 500 чел/сутки

Статистика:

Записей: 111
Страниц: 3
Рубрик: 9
Меток: 11
Комментариев: 347