BloGGood.ru

Блог Костаневича Степана

До Нового Года осталось:

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Все про PHP и MySQL » Работа с файлами PHP (продолжение). Урок 18

Работа с файлами PHP (продолжение). Урок 18

2015-03-27 / Вр:14:28 / просмотров: 3123

Работа с файлами PHP (продолжение). Урок 18

Не буду вас мучить долгим вступлением, а перейду сразу к делу.

Как проверить, существует ли файл на PHP.

Если вам нужно проверить, существует ли файл, воспользуйтесь функцией file_exists().

file_exists("название файла")

- название файла – здесь понятно, пишем название и расширение файла, который нужно проверить.

Пример для заполнения вот такой:

file_exists("file.txt")

или так

file_exists($name) 

Вот готовый код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
if (file_exists("file.txt"))
{
echo "Файл существует";
}
else
{
echo "Файл не существует";
}
?>

</body>
</html>

Если файл «file.txt» присутствует, вы увидите в браузере строчку «Файл существует», если файла нет, тогда увидите строчку «Файл не существует». Вы обратили внимание, что мы здесь использовали конструкцию if-else?

Как узнать размер файла с помощью PHP

Если нужно узнать размер файла, воспользуйтесь функцией filesize():

filesize("название файла")

- название файла – здесь понятно, пишем название и расширение файла, который нужно проверить.

Пример для заполнения вот такой:

filesize("file.txt")

или такой

filesize($name) 

Вот готовый код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
$bloggood = "file.txt";
if (file_exists($bloggood))
{
echo "Размер файла $bloggood: ".filesize($bloggood)." байт";
}
else
{
echo "Файл не существует";
}
?>

</body>
</html>

В результате в браузере вы увидите надпись «Размер файла file.txt: 37 байт».

Как создать временный файл на PHP и сделать в файле запись?

Создание временного файла с помощью функции tmpfile():

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
$bloggood = tmpfile();
fwrite($bloggood, "Эта строка записывается во временный файл."); // Записываем во временный файл
fseek($bloggood, 0); // Устанавливаем указатель файла
echo fread($bloggood, 1024); // выводим содержимое файла
?>

</body>
</html>

В строке №10 вместо текста «Эта строка записывается во временный файл» пропишите свой текст или пропишите переменную $text. Тогда код будет выглядеть вот так:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
$text = "Эта строка записывается во временный файл";
$bloggood = tmpfile();
fwrite($bloggood, $text); // Записываем во временный файл
fseek($bloggood, 0); // Устанавливаем указатель файла
echo fread($bloggood, 1024); // выводим содержимое файла
?>

</body>
</html>

В строке №10 вместо текста «Эта строка записывается во временный файл» можете прописать свой текст.

В результате в браузере вы увидите надпись «Эта строка записывается во временный файл».

Как определить количество строк в файле на PHP?

Вам необходимо определить количество строк в файле? Для этого используйте функцию count()

count("название файла")

- название файла – здесь понятно, пишем название и расширение файла, который нужно проверить.

Пример для заполнения вот такой:

count("file.txt")

или такой

count($name) 
<?php
$bloggood = file("file.txt");
echo 'Количество строк в файле: '.count($bloggood);
?>

Готовый код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
$bloggood = file("file.txt");
echo 'Количество строк в файле: '.count($bloggood);
?>

</body>
</html>

В результате браузер покажет сообщение, что «Количество строк в файле: 5». Это значит, что в файле «file.txt» только 5  строк. У вас результат может быть другим ;-)

Как вывести часть строки PHP?

Если вам нужно вывести только часть строки, воспользуйтесь вот таким кодом:

<?php
$text="Привет, как дела? Рад, что вы зашли на блог BlogGood.ru";
/* читаем с нулевого символа до 10 и добавляем многоточие */
$result=substr("$text", 0, 10)."...";
print $result;
?>

В строке №2 пишите текст.
В строке №4 там, где у меня цифра «10», число символов, которое нужно вывести на экран. В это строке есть еще троеточие «», которое будет выводиться в конце текста.

В итоге вы увидите «Привет, ка...», вместо «Привет, как дела? Рад, что вы зашли на блог BlogGood.ru».

Как вывести определенную строку из файла на PHP?

Если вам нужно вывести определенную строку из файла, воспользуйтесь вот такой схемой:

<?php
// читаем файл в массив
$fopen=file("bloggood-ru.txt");
// номер строки в php считает с 0,
//т.е. данный скрипт выведет вторую строку)
// вывод 2 строки
echo "$fopen[1]";
?>

В строке №7 укажите, какую строку нужно вывести, у меня на примере стоит цифра 1, это значит, что на экране я увижу вторую строку, так как номер строки в php считает с 0.

Готовый код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
// строка, которую будем записывать
$text = "1 строка.Я рад видеть вас на блоге BlogGood.ru
2 строка. - BlogGood.ru
3 строка.Я рад видеть вас";

// открываем файл, если файл не существует,
//делается попытка создать его
$fp = fopen("bloggood-ru.txt", "w");

// записываем в файл текст
fwrite($fp, $text);

// закрываем файл
fclose($fp);

// читаем файл в массив
$fopen=file("bloggood-ru.txt");
// номер строки в php считает с 0,
//т.е. данный скрипт выведет вторую строку)
// вывод 2 строки
echo "$fopen[1]";
?>

</body>
</html>

В результате в браузер вы увидите вот такое сообщение: «2 строка. - BlogGood.ru».

Как удалить определенную строку из файла на PHP?

Если вам необходимо удалить определенную строку из файла, тогда воспользуйтесь вот этой конструкцией:

$num_stroka = 1; //Удалим 2 строку из файла
$file = file("bloggood-ru.txt"); // Считываем весь файл в массив 

for($i = 0; $i < sizeof($file); $i++)
if($i == $num_stroka) unset($file[$i]); 

$fp = fopen("bloggood-ru.txt", "w");
fputs($fp, implode("", $file));
fclose($fp);

В строке №1 пишите какую строку нужно удалить. Но помните, что номер строки в php считает с 0.

Готовый код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
// строка, которую будем записывать
$text = "1 строка.Я рад видеть вас на блоге BlogGood.ru <br>
2 строка. - BlogGood.ru<br>
3 строка.Я рад видеть вас";

// открываем файл, если файл не существует,
//делается попытка создать его
$fp = fopen("bloggood-ru.txt", "w");

// записываем в файл текст
fwrite($fp, $text);

// закрываем файл
fclose($fp);

$num_stroka = 1; //Удалим 2 строку из файла
$file = file("bloggood-ru.txt"); // Считываем весь файл в массив 

for($i = 0; $i < sizeof($file); $i++)
if($i == $num_stroka) unset($file[$i]); 

$fp = fopen("bloggood-ru.txt", "w");
fputs($fp, implode("", $file));
fclose($fp);

// выводим содержание файла на экран браузера
readfile("bloggood-ru.txt");
?>

</body>
</html>

В результате браузер выведет вот такое сообщение:

1 строка. Я рад видеть вас на блоге BlogGood.ru 
3 строка. Я рад видеть вас

Как видите, 2-ой строки нет:|

Как очистить файл на PHP?

Если стоит задача очистить файл, используйте функцию ftruncate()

<?php
$fp = fopen("file.txt", 'a'); //Открываем файл в режиме записи
ftruncate($fp, 0) // очищаем файл
?>

Вот готовый код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Работа с файлами PHP на BlogGood.ru</title>
</head>
<body>

<?php
$fp = fopen("bloggood-ru.txt", 'a'); //Открываем файл в режиме записи
ftruncate($fp, 0) // очищаем файл
?>

</body>
</html>

Если проверить файл «bloggood-ru.txt», вы увидите, что он пуст.

Как узнать дату последнего изменения и обращения файла на PHP?

Если вам необходимо узнать дату последнего изменения файла, используйте функцию filectime().
Если нужно узнать дату последнего обращения к файлу, используйте функцию fileatime() .

<?php
    $filename = "bloggood-ru.txt";
if (file_exists($filename)) {
    echo "Последнее обращение: " .
            date("F d Y H:i:s.", fileatime($filename));
    echo "Последнее изменение: " .
            date("F d Y H:i:s.", filectime($filename));
}
?>

Смотрите результат в браузере. Вам выдастся результат с последнего обращения и последнего изменения файла.

Вот, пожалуй, и все! Фух, закончили тему «Работа с текстом на PHP». Жду вас на следующих уроках :!:.

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

4 Ответов на комментарий - Работа с файлами PHP (продолжение). Урок 18

  1. Даниил

    Почему после 2015 года не выходило больше не одной статьи. Курс закончен? Совсем?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Нет, Даниил, курс не закончен. Я обязательно продолжу, так как много в PHP есть интересных фишек.
    Курс продолжу примерно через месяц.
    Обещаю уроками не разочаровать!

    Ответить

  2. Сергей

    Степан привет!
    Зашел на твой сайт по рубрике Bootstrap уроки, а задержался часа на два, оставил сообщение на статью жены, даже подписался на обновления сайта. Вижу ты человек занятый, а планов громадьё (Маяковский =Я планов наших люблю громадье=). Самому тебе воплотить планы будет сложновато, сообщений, похожих на коммент Даниила, будет все больше. Может настать момент, когда вместо написания очередной полезной читателям статьи будешь “разгребать и модерировать” сообщенческую массу. Результат – уже PHP-7, а у тебя одна статья.
    Давай пообщаемся в скайпе.
    Могу тебе дать 591 страницу (HTML-формат, русский яз.) книги Шлосснейгла Advanced PHP Programming (A practical guide to developing large-scale Web sites and applications with PHP5). Это будет хорошим продолжением твоих 18 страниц по теме. Она в сети в djvu формате, неудобно, код приходится долго писать. Я с ней намучился когда распознавал и редактировал (в свое время)
    Да, в какой программе ты 3d-модели делаешь? Я в 3DsMax, Maya, Blender, ZBrush

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Спасибо, Сергей за комментарий и за предложение!
    3d-модели делаю в 3D-Max.

    Ответить

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

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

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Subscribe without commenting

Метки: ,

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

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Довести количество статей до 750

4). Создать портфолио и мини интернет-магазин шаблонов

5). Создать книгу

6). Довести количество статей до 800

7). Добиться посещаемости 3000 человек/сутки

8). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 747
Количество страниц на блоге: 20
Количество рубрик на блоге: 27
Количество меток на блоге: 71
Количество комментариев на блоге: 4092