Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Текстовый файл в качестве БД


Автор: BigLink 27.12.2010, 08:31
Приветствую
Нужна помощь в PHP, возможно есть уже какое-то готовое решение. Буду благодарен тому, кто подскажет код реализации

В общем, есть txt файл с большим количеством строк (допустим base.txt)
Каждая строка - это контент отдельной страницы для сайта

Необходимо вывести этот контент на каждой странице в зависимости от адреса вроде таких index.php?page=1, index.php?page=2 и т.п.

Как осуществить это средствами PHP и как сгенерировать карту для такого сайта с ограниченным количеством ссылок и со всеми ссылками?

Заранее спасибо

Автор: Mavrun 27.12.2010, 09:00
тебе нужен формат записи типа csv, где данные записываются через какой-либо символ, например через точку с запятой. у тебя в текстовом файле будут только два поля как бы - первое id страницы, а второе - контент. через preg_match создаёшь шаблон, которым вытаскиваешь первые символы до точки с запятой - это будет ид-шник, а далее вытаскиваешь контент. 
а ограничение - через цикл обработки этого файла.
думаю всё как-то так

Автор: BigLink 27.12.2010, 09:16
Спасибо, а обязательно csv? txt не подойдет?

Автор: skyboy 27.12.2010, 09:38
т.е. номер page = номер строки в файле?

Автор: baldina 27.12.2010, 10:02
что-то типа
Код

<?php
$page = $_GET['page'];
$fd = fopen (filename);
for ($i=0; $i<$page; ++$i)
  $str = fgets ($fd);
echo $str;
fclose ($fd);
?>

но это медленно: тестовый файл не самая подходящая структура. не проще ли однократно разбить файл на страницы? тогда и php (для этого) не нужен. или в БД (BLOB) записать.

Автор: BigLink 27.12.2010, 10:46
Думаю, не проще, так как файл из 1000 строк и разбивать их по разным файлам тяжеловато будет

А БД использовать для сайтов, ориентированных на системы продажи ссылок, не слишком экономично, особенно, когда их несколько десятков на одном аккаунте. 

Большое спасибо за код, сегодня попробую проверить
А не подскажете, как сгенерировать карту для этого сайта средствами PHP
То есть, чтобы на странице, например, выводилось столько ссылок с числами от 1 до n, сколько строк в файле. И например, как можно разбить их на несколько страниц

Заранее спасибо

Автор: baldina 27.12.2010, 11:29
Цитата

 разбивать их по разным файлам тяжеловато будет

это делается парой строчек на любом ЯП

Добавлено через 1 минуту и 32 секунды
Цитата

 как сгенерировать карту для этого сайта средствами PHP

также, как и вывести, добавив лишь обработку ссылок (в зависимости от того, что именно хочется выводить)

Автор: BigLink 29.12.2010, 07:46
С картой так и не разобрался

Нужна примерно такая карта

Код

<a href="http://sitename.ru/index.php?page=1">Отель №1</a>
<a href="http://sitename.ru/index.php?page=2">Отель №2</a>
<a href="http://sitename.ru/index.php?page=3">Отель №3</a>
<a href="http://sitename.ru/index.php?page=4">Отель №4</a>
и т.д.

Как сгенерировать такую карту с любым необходимым числом страниц? smile 
И чтобы начать и закончить можно было определенным числом

Автор: Codd 8.1.2011, 16:40
Цитата

<a href="http://sitename.ru/index.php?page=1">Отель №1</a>
<a href="http://sitename.ru/index.php?page=2">Отель №2</a>
<a href="http://sitename.ru/index.php?page=3">Отель №3</a>
<a href="http://sitename.ru/index.php?page=4">Отель №4</a>
и т.д.


Код

for($i = 1; $i <= 10; $i++){
   echo "<a href=\"http://sitename.ru/index.php?page=$i\">Отель №$i</a>"
}

Автор: Temp 8.2.2011, 00:29
BigLink, не знаю какими переменными это можно сделать, но думаю что всётами есть такие.
1) подключаем (открываем) текстовый файл
2) \n разделитель строк используем как разделитель элементов
3) через разделитель загоняем текст в массив
4) из массива вытаскиваем нужный. пример: echo $page[10];

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)