почему в 5 утра 2 одинаковые строки не равны?

KorP

Новичок
В общем есть крипт, который по крону запускается каждые 10 минут.
Скрипт парсит страницу и получает строку, если строки не равны - обновляет запись в базе полученным значением, есть одинаковые - ничего не делает.
Теперь косяк: каждый день, ровно в 5 утра у скрипта происходит ложное срабатывание - все строки почему то не равны значениям из базы и он их перезаписывает точно такими же значениями. Ну а в течении дня всё работает корректно - ничего не перезаписывается просто так, только если значение в строках действительно отличается.

Я что то даже не могу понять в какую сторону капать. Если значения он проставляет те же самые, значит страницу он парсит корректно, перед этим данные в базе никак не изменяются, т.е. строки должны совпадать 100% (ну и собственно всё остальное время они совпадают). Почему именно в 5 утра?

Строки содержат дату типа "28-Дек-10 23:33" или "05 Янв 2011 09:36:15", работаю именно со строками. Проверяю вот так:
PHP:
preg_match_all("/<span title=\"Зарегистрирован\">\[ (.+) \]<\/span>/", $get, $array);
		if (isset($array[1][0])) {
			if ($array[1][0] != '')	{
				if ($array[1][0] != $timestamp)	{
...
}
}
}
 

С.

Продвинутый новичок
$array[1][0] -- ты хоть смотрел, что там содержится?
 

Sokil.Dmytro

Новичок
а в $get попадает здоровый кусок текста, в котором может встречаться несколько таких спанов?
 

KorP

Новичок
а в $get попадает здоровый кусок текста, в котором может встречаться несколько таких спанов?
нет, такой именно один, ну и если бы их было несколько - скрипт бы срабатывал ложно чаще чем раз в сутки и в определённое время
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ну тут фаза луны, определенно. Ищи в справочнике, какая фаза приходится на 5 утра, и это же все объясняет!!
 

Sokil.Dmytro

Новичок
а зачем тогда preg_match_all? я просто подумал может оно неколько раз встречается? пробелы посмотрите - может в скобки пробел пролазит?
 

KorP

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

Sokil.Dmytro

Новичок
ну вопрос у нас ведь с временем связан :) так что все может быть. а как $timestamp формируется - може в нем косяк?
 

KorP

Новичок
а как $timestamp формируется - може в нем косяк?
короче пишу следилку за темами на трекере, она грепит дату регистрации торрента и если дата изменил - перекачивает его, если не изменилось - сидит и дальше наблюдает молча. соответственно это дата изменяется только при регистрации торрента, и в 5 утра их никто не обновляет, да и дата пишется старая, ну и на странице она статична и не генерируется каждый раз при обращении к странице
 

fixxxer

К.О.
Партнер клуба
Сдампай raw data и сравни потом побайтово, че тут думать. Тест напиши. Телепаты все равно до 11-го бухают :D
 

fixxxer

К.О.
Партнер клуба
Logger::write($get);
preg_match_all("/<span title=\"Зарегистрирован\">\[ (.+) \]<\/span>/", $get, $array);
Logger::write($array);
Logger::write($timestamp);
if (isset($array[1][0])) {
if ($array[1][0] != '') {
if ($array[1][0] != $timestamp) {
...
}
}
}
 

fixxxer

К.О.
Партнер клуба
ох

я условно. понимаешь что такое псевдокод? )
 

KorP

Новичок
я условно. понимаешь что такое псевдокод? )
ну примерно - описание алгоритма работы

на сколько я понял - смысл это собрать все данные и потом их проверить - что и в какой момент он получил, нашёл, записал!?
 

phprus

Moderator
Команда форума
KorP
Да. А потом уже можно будет анализировать, что происходит.
 

KorP

Новичок
Да. А потом уже можно будет анализировать, что происходит.
ну просто в моём понимании - данные он получает корректно:
1. $get получает страницу, т.к. после парсинга данные есть
2. $array[1][0] содержит дату, т.к. пишет её в базу и скидывает мне на мыло
осталось теперь проанализировать что же всё-таки не так и почему строки не равны. в общем сегодня поэксперементирую

благодарю
 

KorP

Новичок
ночь прошла отлично, по этому логи будут тока завтра :))
 
Сверху