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 :: Вход в массив при получении id капчи от сервеса antigate -1.

 PHP.SU

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


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

> Описание: Помогите правильно сделать вход в массив при получении id капчи -1
SakuRa
Отправлено: 01 Июля, 2012 - 03:13:17
Post Id


Новичок


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


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




Здравствуйте. помогите пожалуйста сделать вход в цикл при получении id капчи от сервеса antigate -1.

//посылаю капчу:
$anticapcha->recognize("C://test.jpg","мою ключ");

//смотрим номер капчи
echo $anticapcha->get_last_capcha_id()."<br>";

при приходе ошибки ERROR_NO_SLOT_AVAILABLE, id капчи равен -1, помогите сделать, что если id равен -1, то начинался бы цикл. Пробую так, но не работает

while (strpos ($anticapcha->get_last_capcha_id(), "-1") != 0)
{
ЦИКЛ
}

(Отредактировано автором: 01 Июля, 2012 - 03:32:49)

 
 Top
Wol_fi
Отправлено: 01 Июля, 2012 - 05:13:19
Post Id


Новичок


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


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




SakuRa пишет:
Здравствуйте. помогите пожалуйста сделать вход в цикл при получении id капчи от сервеса antigate -1.

//посылаю капчу:
$anticapcha->recognize("C://test.jpg","мою ключ");

//смотрим номер капчи
echo $anticapcha->get_last_capcha_id()."<br>";

при приходе ошибки ERROR_NO_SLOT_AVAILABLE, id капчи равен -1, помогите сделать, что если id равен -1, то начинался бы цикл. Пробую так, но не работает

while (strpos ($anticapcha->get_last_capcha_id(), "-1") != 0)
{
ЦИКЛ
}


эм если я проавильно понял вам нужно проверить вовзращаемое значение на -1? чем вас
$anticapcha->get_last_capcha_id() < 0 не устраивает? зачем strpos()?
 
 Top
SakuRa
Отправлено: 01 Июля, 2012 - 05:33:46
Post Id


Новичок


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


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




Wol_fi пишет:
SakuRa пишет:
Здравствуйте. помогите пожалуйста сделать вход в цикл при получении id капчи от сервеса antigate -1.

//посылаю капчу:
$anticapcha->recognize("C://test.jpg","мою ключ");

//смотрим номер капчи
echo $anticapcha->get_last_capcha_id()."<br>";

при приходе ошибки ERROR_NO_SLOT_AVAILABLE, id капчи равен -1, помогите сделать, что если id равен -1, то начинался бы цикл. Пробую так, но не работает

while (strpos ($anticapcha->get_last_capcha_id(), "-1") != 0)
{
ЦИКЛ
}


эм если я проавильно понял вам нужно проверить вовзращаемое значение на -1? чем вас
$anticapcha->get_last_capcha_id() < 0 не устраивает? зачем strpos()?


как мне реализовать то, что если id придет -1, то запускался бы цикл? Поправьте мой скрипт пожалуйста, который в шапке темы
 
 Top
Wol_fi
Отправлено: 01 Июля, 2012 - 06:02:21
Post Id


Новичок


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


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




Вы не указали что будет в теле цикла, но я так понимаю ваша ошибка в том что вы дрёгаете метод $anticapcha->get_last_capcha_id() при каждой итерации цикла, хотя он нужен 1 раз. Вообщем если я вас правильно понял вам нужно что-то вроде этого
PHP:
скопировать код в буфер обмена
  1. $result = $anticapcha->get_last_capcha_id();
  2. if($result < 0){
  3. //вот тут цикл while,for,foreach - какой больше нравится
  4. }

а вообще каждая функция внутри счетчика цикла будет вызываться каждую итерацию, например при таком переборе массива
PHP:
скопировать код в буфер обмена
  1. $array = array(1,2,3,4,5);
  2. for($i=0;$i<=count($array);$i++){
  3. //тут тело цикла
  4. }

функция count() из счётчика будет вызвана 5 раз (по разу на каждую итерацию)
а при таком
PHP:
скопировать код в буфер обмена
  1. $array = array(1,2,3,4,5);
  2. $count = count($array);
  3. for($i=0;$i<=$count;$i++){
  4. //тут тело цикла
  5. }

функция count() будет вызвана лишь один раз , а в счётчике уже используется переменная которой было присвоено значение, которое вернуло функция count();

(Отредактировано автором: 01 Июля, 2012 - 06:03:44)

 
 Top
SakuRa
Отправлено: 01 Июля, 2012 - 06:36:25
Post Id


Новичок


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


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




Должно получиться что то вроде:

//посылаю капчу:
$anticapcha->recognize("C://test.jpg","мою ключ");

$anticapcha->get_last_capcha_id();

while (strpos ($anticapcha->get_last_capcha_id(), "-1") != 0)
{
//отправляем капчу повторно
$x = $image->get_x_by_number(7);
$y = $image->get_y_by_number(7);
$webpage->print_screen("C://test.jpg",$x,$y,$x+150,$y+55);
$anticapcha->recognize("C://test.jpg","мой ключ");

//получаем id капчи
$anticapcha->get_last_capcha_id();
}

т.е. если id капчи <0 то цикл начался бы и не закончился пока id не будет >0.
 
 Top
Wol_fi
Отправлено: 01 Июля, 2012 - 13:46:56
Post Id


Новичок


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


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




Ну сразу бы привели весь код, вот вам решение
PHP:
скопировать код в буфер обмена
  1. //посылаю капчу:
  2. $anticapcha->recognize("C://test.jpg","мою ключ");
  3.  
  4. while(true){// никогда не используйте такую конструкцию если внутри цикла не будет его остановки
  5. //после остановки цикла результат (рабочий айди) будет в переменной $result
  6. $result = $anticapcha->get_last_capcha_id();
  7. if($result<0){//если меньше 0 то отправляем повторно и будет новая итерация цикла
  8. //отправляем капчу повторно
  9. $x = $image->get_x_by_number(7);
  10. $y = $image->get_y_by_number(7);
  11. $webpage->print_screen("C://test.jpg",$x,$y,$x+150,$y+55);
  12. $anticapcha->recognize("C://test.jpg","мой ключ");
  13. }else{//если больше 0 то выходим из цикла
  14. break;
  15. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB