Перейти к содержимому

Реферальная программа Мегаплана


Создание файла с добавлением по счетчику

#1 Kloder

Kloder
  • Пользователь
  • 1 сообщений
  • Репутация: 0
0

Отправлено 24 Апрель 2012 - 06:52

Делаю на локальном сервере(apache) скрипт вывода и записи новостей, но встал вопрос.
Я не хочу использовать MySQL, хочется обойтись обычными текстовыми файлами: файл=новость.
Надо считывать данные из файла: url картинки для новости, заголовок, и само содержание.
Как посчитать кол-во файлов при создании новости и добавить 1 единицу к новости, чтобы в директории сервера были файлы вида: 1.txt 2.txt 3.txt ... n+1.txt?

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 24 Апрель 2012 - 07:07

Читаем содержимое каталога с файлами в массив. Размер массива, соответственно, и будет количеством новостей. Ну и, чтобы не усложнять ничего, в каталоге должны быть только файлы с новостями.
  • 0


#3 Symby

Symby
  • Пользователь
  • 14 сообщений
  • Репутация: 1

Отправлено 24 Апрель 2012 - 10:05

Скачайте себе Kandidat CMS, там как раз так реализовано.
  • 0

#4 balby

balby
  • Пользователь
  • 6 сообщений
  • Репутация: 1

Отправлено 29 Апрель 2012 - 03:26

как то так.
<?php
define('NEWS_DIR', 'test'); // Имя дериктории с новостями
define('FILE_TYPE', 'txt'); // тип файлов для поиска
define('DEFAULT_ID', 1); // Если не найдет ни одного файла, то первыйм ID будет этот
function last_news_id()
{
$last_id = NULL; // переменная для last_id

if ($handle = opendir(NEWS_DIR . '/'))  // открываем дерикторию
{
  while (false !== ($entry = readdir($handle))) // читаем каждый файл дериктории циклом while
  {
   if ($entry != "." && $entry != "..") { // убедимся что это файл а не директория
	if (preg_match('/([0-9]+)\.'. FILE_TYPE .'/i', $entry, $result)) // убедимся что это тот самый тип файла который нам нужен и возьмем у него номер
	{
	 if ((int) $result[1] > $last_id) // если номер больше предыдущего то перезапишем $last_id
	 {
	  $last_id = (int) $result[1];
	 }
	}
   }
  } // end while
  closedir($handle); // закроем директорию
}

if (is_null($last_id)) // убедимся что переменная $last_id не пустая, а если пустая то поставим порядковый ID по умолчанию
{
  $last_id = DEFAULT_ID;
}

return (int) $last_id; // вернем id
}

echo "Последний ID новости: " . last_news_id();

  • 1


Оформление форума – IPBSkins.ru