DANFA

PHP скрипт вывода статей из текстовых файлов

И снова привет! Имеется большое количество статей в текстовых файлах, формата txt, по одной статьи в каждом файле. Из этих файлов надо собрать, что-то, типа, блога. В папке лежат файлы 1.txt, 2.txt, 3.txt и т. д. Надо проверить всю папку, собрать из них список всех статей - этот список будет на главной странице. При переходе в одну из статей, надо считывать текст и вставлять его в страницу.
Кто возьмётся за работу? Могу немного оплатить!
Вывести на экран все файлы, которые находятся в папке, например, "txt", можно так:
$dir = 'txt'; // Директория статей
$files = scandir($dir); // Получение всех файлов

// Прогон всех файлов в цикле
foreach ($files as $file)
{
	if ($file == '.' | $file == '..')
	{
		continue;
	}

	echo $file . '<br />';
}

Но тут будет выведено только названия самих файлов 1.txt, 2.txt, 3.txt. Правильнее будет выводить названия статей.

Выводить статью из файла можно так:
// Проверка наличия значения параметра id
if (!empty($_GET['id']))
{
	$id = (int) $_GET['id'];

	$file = $dir . '/' . $id . '.txt';
	if (file_exists($file)) // Проверка наличия файла
	{
		// Чтение файла
		$content = file_get_contents($file);

		// Вывод содержимого на экран
		echo $content;
	}
}

Покажите структуру файлов, что содержат в себе статьи?
Dolphin сказал:
Покажите структуру файлов, что содержат в себе статьи?

$title = "Название статьи";
$text = "Текст самой статьи";
Office, переименуйте свои файлы: 1.txt, 2.txt, 3.txt на: 1.php, 2.php, 3.php, в начало файла добавьте <?php, чтобы получилось так:
<?php
$title = "Название статьи";
$text = "Текст самой статьи";

И вот Вам код всего блога в одном файле index.php:
$dir = 'txt';

if (!empty($_GET['id']))
{
	$id = (int) $_GET['id'];

	$file = $dir . '/' . $id . '.php';
	if (file_exists($file))
	{
		include($file);

		echo '<h1><a href="index.php?id=' . $id . '">' . $title . '</a></h1>';
		echo $text;
	}
}
else
{
	$files = scandir($dir);

	foreach ($files as $file)
	{
		if ($file == '.' | $file == '..')
		{
			continue;
		}

		include($dir . '/' . $file);

		echo '<p><a href="index.php?id=' . (int) $file . '">' . $title . '</a></p>';
	}
}
Scorpion, спасибо, сделал, как Вы показали. А ведь можно все статьи записать в один файл-массив:
<?php
$array = array(
    1 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
    2 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
    3 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
);

и вытаскивать от туда всё, что надо?
Можно и в одном файле-массиве, создать отдельный файл db.php или написать массив прямо в том же файле, где находится скрипт и опа:
$array = array(
    1 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
    2 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
    3 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
);

if (!empty($_GET['id']))
{
	$id = (int) $_GET['id'];

	echo '<h1><a href="index.php?id=' . $id . '">' . $array[$id]['title'] . '</a></h1>';
	echo $array[$id]['text'];
}
else
{
	foreach ($array as $key => $val)
	{
		echo '<p><a href="index.php?id=' . (int) $key . '">' . $val['title'] . '</a></p>';
	}
}

Удобнее тем, что нету кучи файлов, минус в том, что если массив будет содержать огромное количество статей, он будет влиять на время загрузки страницы, даже, где на экране будет выведена одна статья, массив целиком будет обработан php обработчиком.
Гениально!
Я попробую скрипт с общим массивом и с каждым отдельным файлом, сравню, что быстрее работает, может разница будет незначительная, так оставлю один массив.
Scorpion, спасибо Вам большое!
Могу перевести пару баксов на Ваш счёт, пришлите номер счёта в личку.
Создал отдельный файл db.php с такой структурой:
<?php
$array = array(
    1 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
    2 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
    3 => array('title' => 'Название статьи', 'text' => 'Текст самой статьи'),
);

При помощи include() подключаю файл и достаю всё, что надо.
Спасибо за подробный код.