Есть функция
function getPoselenie($townid, $id)
{
global $curl, $cookie_filename, $token, $nlreq, $timef;
//Проверка возможности фарма
$farminfo = 'http://ru1.grepolis.com/game/farm_town_info?action=claim_info&town_id='.$townid.'&h='.$token[1].'&json={"id":"'.$id.'","town_id":'.$townid.',"nlreq_id":'.$nlreq[1].'}&_='.$timef;
curl_setopt($curl, CURLOPT_URL, $farminfo);
curl_setopt($curl, CURLOPT_REFERER, 'http://ru1.grepolis.com/game/index?login=1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest'));
$html = curl_exec($curl);
//echo ($html);
preg_match ('#farm_next_claim_time\\\">(.*?)<\\\/span>#', $html, $ready);
print_r ($ready);
if ($ready[1] == "\u0433\u043e\u0442\u043e\u0432\u043e")
{
// Фарм поселений
//$id - ое поселение
$farm01 = 'http://ru1.grepolis.com/game/farm_town_info?action=claim_load&town_id='.$townid.'&h=' .$token[1];
$post = 'json={"target_id":"' . $id . '","claim_type":"normal","time":300,"town_id":"'.$townid.'","nlreq_id":0}';
curl_setopt($curl, CURLOPT_URL, $farm01 );
curl_setopt($curl, CURLOPT_REFERER, 'http://ru11.grepolis.com/game/index?login=1');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$html = curl_exec($curl);
return $html;
continue;
}
}
и есть цикл
foreach ($posel as $posel1)
{
if (isset ($posel1['name']))
getPoselenie ($city[0]['id'], $posel1['id']);
}
В общем мне нужно перебрать массив $posel (там id нескольких поселений), вызывая функцию getPoselenie для каждого поселения...
Но также мне нужно выполнить условие (парсится страница и проверяется возможность фарма)...
По идее мне нужно выполнять сначала проверку возможности фарма и вывести print_r ($ready)...
А на деле получается наоборот, он сначала отправляет post а потом проверяет и выводит print_r ($ready); или ... не пойму что происходит...
Что не так???
Вот что я получаю после первого запуска скрипта:
Array ( [0] => farm_next_claim_time\">\u0433\u043e\u0442\u043e\u0432\u043e<\/span> [1] => \u0433\u043e\u0442\u043e\u0432\u043e ) Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
[Денвер: показать возможную причину ошибки]Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Вот что после второго:
Array ( [0] => farm_next_claim_time\">0:03:16<\/span> [1] => 0:03:16 ) Array ( [0] => farm_next_claim_time\">\u0433\u043e\u0442\u043e\u0432\u043e<\/span> [1] => \u0433\u043e\u0442\u043e\u0432\u043e ) Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
[Денвер: показать возможную причину ошибки]Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Array ( )
Notice: Undefined offset: 1 in Y:\home\Sigiz.ru\www\Index.php on line 96
Т.е. с каждым запуском скрипта, он на одну позицию продвигает цикл...
Спустя 13 минут, 21 секунда (25.07.2012 - 15:12) neadekvat написал(а):
Начнем с того, что твое регулярное выражение не работает..
Спустя 5 минут, 6 секунд (25.07.2012 - 15:17) ArtemKrass написал(а):
работает, я же его вывожу print_r
(Array ( [0] => farm_next_claim_time\">0:03:16<\/span> [1] => 0:03:16 ))
Походу цикл прерывается, когда условие выполняется... пробовал continue пихать не помогает, т.е. он не прерывается а перестает парсить страницу чтоли...?
(Array ( [0] => farm_next_claim_time\">0:03:16<\/span> [1] => 0:03:16 ))
Походу цикл прерывается, когда условие выполняется... пробовал continue пихать не помогает, т.е. он не прерывается а перестает парсить страницу чтоли...?
Спустя 9 минут, 8 секунд (25.07.2012 - 15:26) neadekvat написал(а):
Тебя не смущает куча предупреждений, которые вызваны отсутствием второго элемента в каком-то из массивов (я уж не знаю, на какие строчки указывают предупреждения)?
Спустя 24 минуты, 5 секунд (25.07.2012 - 15:50) ArtemKrass написал(а):
ругается на эту строку
if ($ready[1] == "\u0433\u043e\u0442\u043e\u0432\u043e")
$ready[1] это именно то, что парсит регулярка... первый раз то он ее получает
if ($ready[1] == "\u0433\u043e\u0442\u043e\u0432\u043e")
$ready[1] это именно то, что парсит регулярка... первый раз то он ее получает
Спустя 1 час, 19 минут, 9 секунд (25.07.2012 - 17:09) ArtemKrass написал(а):
Вся проблема видимо в $ready[1]
При первом проходе цикла нормально парсится, а далее возвращается пустой массив...
В чем может быть причина? Может есть какая то особенность отправки get и получения ответа через цикл?
При первом проходе цикла нормально парсится, а далее возвращается пустой массив...
В чем может быть причина? Может есть какая то особенность отправки get и получения ответа через цикл?
Спустя 48 минут, 2 секунды (25.07.2012 - 17:57) ArtemKrass написал(а):
Проблема заключается в том, что на втором проходе цикла, скрипт вместо Get делает post запрос, при том, что в первый раз все отправляется правильно...
Проблема здесь:
$farminfo = 'http://ru1.grepolis.com/game/farm_town_info?action=claim_info&town_id='.$townid.'&h='.$token[1].'&json={"id":"'.$id.'","town_id":'.$townid.',"nlreq_id":'.$nlreq[1].'}&_='.$timef;
curl_setopt($curl, CURLOPT_URL, $farminfo);
curl_setopt($curl, CURLOPT_REFERER, 'http://ru1.grepolis.com/game/index?login=1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest'));
$html = curl_exec($curl);
Не могу понять как исправить...
Проблема здесь:
$farminfo = 'http://ru1.grepolis.com/game/farm_town_info?action=claim_info&town_id='.$townid.'&h='.$token[1].'&json={"id":"'.$id.'","town_id":'.$townid.',"nlreq_id":'.$nlreq[1].'}&_='.$timef;
curl_setopt($curl, CURLOPT_URL, $farminfo);
curl_setopt($curl, CURLOPT_REFERER, 'http://ru1.grepolis.com/game/index?login=1');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest'));
$html = curl_exec($curl);
Не могу понять как исправить...
Спустя 2 часа, 29 минут, 29 секунд (25.07.2012 - 20:27) ArtemKrass написал(а):
Разобрался!
Не хватало curl_setopt($curl, CURLOPT_POST, false);
Не хватало curl_setopt($curl, CURLOPT_POST, false);
Спустя 17 минут, 48 секунд (25.07.2012 - 20:44) neadekvat написал(а):
Нет ничего приятнее, чем разобраться самому, верно?
Спустя 12 часов, 55 минут, 40 секунд (26.07.2012 - 09:40) ArtemKrass написал(а):
О ДА! Но меня все равно на мысль навели...