Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кэширование данных в .TXT файл (запись и вывод)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kismedia
Отправлено: 17 Января, 2011 - 16:01:07
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Июль 2010  
Откуда: Нижний Новгород


Помог: 0 раз(а)




Всем здравствуйте! Улыбка

Знаю что можно хранить (получать) данные как в БД так и в в файлах, допустим в .TXT.

Опишу на своем примере и зачем это нужно мне.
Недавно в данной теме http://forum.php.su/topic.php?fo...1&topic=5966 я, не без помощи пользователей форума, написал следующую функцию:

PHP:
скопировать код в буфер обмена
  1. function parstitle ($urlsape){
  2.  
  3. if($html_content = @file_get_contents('http://' .$urlsape. '')){
  4. preg_match_all( "|<title>(.*)</title>|sUSi", $html_content, $titles);
  5. $titles = $titles[1][0];
  6. if (mb_check_encoding($titles, 'Windows-1251') && !mb_check_encoding($titles, 'UTF-8')){
  7. $titles = mb_convert_encoding($titles, 'UTF-8', 'Windows-1251');
  8. }
  9. if ($titles = "301 Moved Permanently") {
  10. $html_content = @file_get_contents('http://www.' .$urlsape. '');
  11. preg_match_all( "|<title>(.*)</title>|sUSi", $html_content, $titles);
  12. $titles = $titles[1][0];
  13. if (mb_check_encoding($titles, 'Windows-1251') && !mb_check_encoding($titles, 'UTF-8')){
  14. $titles = mb_convert_encoding($titles, 'UTF-8', 'Windows-1251');
  15. }
  16. }
  17. echo $titles;
  18. }else echo "Данные не доступны";
  19. }


Что делаем, парсим содержимое тега <TITLE> заданной страницы $urlsape и выводим результат в правильной (соответствующей сайту) кодировке из переменной $titles.

Вот, собственно и задача:
Как дописать, реализовать кэширование переменной $titles учитывая значение $urlsape в некий текстовый файл, допустим построчно, и потом вытягивать это значение по условию наличия и соответственно выводить результат. Тем самым сократив количество постоянных обращений и бессмысленного повторного парсинга сайтов.

Вижу это так:

Переменная $titles в конце имеет некий результат, заголовок страницы сайта с адресом $urlsape

Необходимо организовать хранилище в файле с расширением .txt следующей структуры:
$urlsape - $titles
$urlsape - $titles
$urlsape - $titles

.......

Проверяем переменную $urlsape, если ее содержимое уже имеется в файле, скажем Cache.txt, то забираем ее значение $titles, и соответсвенно выводим.
Если такой записи нет, то парсим согласно выше приведенному коду и результат записываем в файл Cache.txt. После чего ее тоже выводим.

Насколько трудоемко дописать данный модуль кеширования и какие функции для этого использовать?

Время жизни кэша не имеет значения, данные не обновляются.

Спасибо!


Отредактировано модератором: JustUserR, 17 Января, 2011 - 16:17:47
Осуществено удаление повторяющейся темы


-----
Белый, полностью индексируемый в Яндекс Каталог сайтов Инфо-Рунет http://info-runet[dot]ru/ .
 
 Top
MXM
Отправлено: 17 Января, 2011 - 17:02:31
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Это не сложно..., примеры на сайте есть смотри функцию fopen();

(Отредактировано автором: 17 Января, 2011 - 17:03:43)

 
 Top
kismedia
Отправлено: 17 Января, 2011 - 17:07:42
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Июль 2010  
Откуда: Нижний Новгород


Помог: 0 раз(а)




Спасибо, суть понял но нужно этот файл обработать соответствующим образом, найти в нем требуемое значение ,если оно уже имеется.

Давайте так, сколько будет стоить данное дополнение (функция) к моему парсеру?
Кто может помочь, написать.


-----
Белый, полностью индексируемый в Яндекс Каталог сайтов Инфо-Рунет http://info-runet[dot]ru/ .
 
 Top
JustUserR
Отправлено: 19 Января, 2011 - 14:37:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




kismedia пишет:
Спасибо, суть понял но нужно этот файл обработать соответствующим образом, найти в нем требуемое значение ,если оно уже имеется
В общем случае процесс обработки базы информационных полей сохранение которых осуществлено в тектовом файле основан на выполнении специальных оптимиальных процедур поиска и модификации данных - в частности для осуществления установки обновленных значений для некоторого ключевого параметра обеспечивается последовательные копирование строк файла в его дупликат - до тех пор пока текущее выбранное информационные поле не является ассоцированным с целевым ключом - после чего обеспечивается модификация данных и сохранения их в новых файл


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB