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


Пользователь месяца
WGN WGN 1-й за Июль
Очков активности: 850 2 темы, 75 сообщений, 7 баллов репутации
Сайт: worldgamenews.com
ТОП самых активных за этот месяц
  • Фотография TimurR
    #1

    TimurR
    Очков активности: 216 3 темы, 15 сообщений, 6 баллов репутации

  • Фотография WGN
    #2

    WGN (worldgamenews.com)
    Очков активности: 64.5 Вне конкурса за определение пользователя месяца

  • Фотография ShowPrint
    #3

    ShowPrint (ShowPrint.ru)
    Очков активности: 52.5 0 тем, 7 сообщений, 5 баллов репутации

  • Фотография BlackLion
    #4

    BlackLion
    Очков активности: 31.5 0 тем, 21 сообщение, 1 балл репутации

  • Фотография Vmir
    #5

    Vmir
    Очков активности: 22.5 Вне конкурса за определение пользователя месяца

  • Фотография Ixman
    #6

    Ixman (o5cat.ru)
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

  • Фотография Napoleon-007
    #7

    Napoleon-007
    Очков активности: 21 0 тем, 14 сообщений, 1 балл репутации

  • Фотография alekswebart
    #8

    alekswebart
    Очков активности: 19.5 1 тема, 10 сообщений, 1 балл репутации

  • Фотография r0mZet
    #9

    r0mZet (rz-style.ru)
    Очков активности: 18 2 темы, 6 сообщений, 1 балл репутации

  • Фотография profi
    #10

    profi (1informer.com)
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 13.08.2018
Топ 5 участников по репутации


Кэширование данных в .TXT файл (запись и вывод) (стр. 2)

#11 Kismedia

Kismedia
    Topic Starter
  • Неактивные
  • 315 сообщений
  • Репутация: 0
0

Отправлено 17 January 2011 - 14:13

Kismedia, то, что вам нужно, это не кеширование, а просто запись в файл ;)


Ну пусть это называется так. :)
Хотя в данном случае это не отражает всю суть задачи, это не просто одностороннее действие, запись в файл и все.

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


  • 0

#12 admin

admin
  • Пользователь PRO
  • 5275 сообщений
  • Репутация: 55

Отправлено 17 January 2011 - 14:20

Kismedia, напишите что вам нужно конкретно. Причём без подобных выражений:

реализовать кэширование переменной $titles учитывая значение $urlsape в некий текстовый файл

А конкретно: нужно записать в файл значение $titles или что вам там нужно. И если это так, то лучше в конце вашей функции сделать не вывод $titles в браузер, а просто возврат значения этой переменной с помощью return $titles. Я так думаю ;)
Повторюсь ещё раз, нужен алгоритм действий, потому что не все тут экстрасенсы :)
  • 0

#13 Kismedia

Kismedia
    Topic Starter
  • Неактивные
  • 315 сообщений
  • Репутация: 0

Отправлено 17 January 2011 - 14:33

Хорошо, согласен.

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

function parstitle ($urlsape){

if($html_content = @file_get_contents('http://' .$urlsape. '')){
preg_match_all( "|<title>(.*)</title>|sUSi", $html_content, $titles);
$titles = $titles[1][0];
if (mb_check_encoding($titles, 'Windows-1251') && !mb_check_encoding($titles, 'UTF-8')){
$titles = mb_convert_encoding($titles, 'UTF-8', 'Windows-1251');
}
if ($titles = "301 Moved Permanently") {
$html_content = @file_get_contents('http://www.' .$urlsape. '');
preg_match_all( "|<title>(.*)</title>|sUSi", $html_content, $titles);
$titles = $titles[1][0];
if (mb_check_encoding($titles, 'Windows-1251') && !mb_check_encoding($titles, 'UTF-8')){
$titles = mb_convert_encoding($titles, 'UTF-8', 'Windows-1251');
}
}
echo $titles;
}else echo "Данные не доступны";
}


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

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

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

Так, надеюсь понятнее.
  • 0

#14 Kismedia

Kismedia
    Topic Starter
  • Неактивные
  • 315 сообщений
  • Репутация: 0

Отправлено 17 January 2011 - 14:47

Не знаю, Админ и surfer, извините если что ;) , но мне кажется что из первого поста было вполне понятно что требуется.
Я понимаю, конечно, что у меня слэнг "кривой" ,поэтому код еще парсера выложил.
  • 0

#15 surfer

surfer
  • Заблокированные
  • 1956 сообщений
  • Репутация: 71

Отправлено 17 January 2011 - 14:51

не пойму в чем трудность для тебя?
не пойму почему ты уперся в кэширование?
задача, которую ты описал максимально тривиальная, самое сложное в ней это парсер.
  • 0

#16 Kismedia

Kismedia
    Topic Starter
  • Неактивные
  • 315 сообщений
  • Репутация: 0

Отправлено 17 January 2011 - 14:54

В данном случае файл Cache.txt является хранилищем данных и предназначен для быстрого получения информации без использования обращений к стороннему серверу. А иными словами кэширование запросов (данных).
  • 0

#17 surfer

surfer
  • Заблокированные
  • 1956 сообщений
  • Репутация: 71

Отправлено 17 January 2011 - 14:55

но это не самый быстрый способ, что ты выбрал
  • 0

#18 Kismedia

Kismedia
    Topic Starter
  • Неактивные
  • 315 сообщений
  • Репутация: 0

Отправлено 17 January 2011 - 14:58

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


Ну хорошо, и как можно записать , хранить и выводить результаты работы парсера?
Каким способом?
  • 0

#19 surfer

surfer
  • Заблокированные
  • 1956 сообщений
  • Репутация: 71

Отправлено 17 January 2011 - 15:00

БД самый быстрый способ, а если выводимые данные статичные, то их можно кэшировать
  • 0

#20 Kismedia

Kismedia
    Topic Starter
  • Неактивные
  • 315 сообщений
  • Репутация: 0

Отправлено 17 January 2011 - 15:05

БД, согласен, самый быстрый , ну давайте разберем на примере работы с БД эту задачу.

P.S. Такая дискуссия разгорелась, не ожидал, даже на какой то момент пожалел что создал эту тему. ;)


  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

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