Я пытаюсь решить recaptcha V2 с API 2captcha,
recaptcha V2
2captcha
Я использую этот код:
<?php function token(){ $apiKey = "MY_API_KEY"; $googleKey = "6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0"; $pageUrl = "https://example.com/"; $time = time(); while ( true ) { $retrieve= file_get_contents("http://2captcha.com/in.php?key=".$apiKey."&method=userrecaptcha&googlekey=".$googleKey."&pageurl=".$pageUrl, false, $ctx); $first = array($retrieve); $result = explode('OK|',$first[0]); $hello = $result[1]; $con="http://2captcha.com/res.php?key=".$apiKey."&action=get&id=".$hello; sleep(23); $getting = file_get_contents($con); $second = array($getting); $secondresult = explode('OK|',$second[0]); $reponsetoken = $secondresult[1]; echo'<br/>'; echo'<br/>'; echo'get new captcha token ...'; echo'<br/>'; echo'<br/>'; if ((time() - $time) >= 99) { echo date("Y:m:d g:i:s"), PHP_EOL; $time = time(); } sleep(2); } } if (!empty($reponsetoken)) { file_put_contents( 'token.txt', $reponsetoken ); } else{token();} ?>
Почему я иногда не получаю ответ?
Я пытаюсь привести условие в состояние тайм-аута.
$retrieve= file_get_contents("http://2captcha.com/in.php?key=".$apiKey."&method=userrecaptcha&googlekey=".$googleKey."&pageurl=".$pageUrl, false, $ctx);
Затем я хочу зациклить весь код каждые 2 минуты 30 секунд.
Как я могу использовать условие с file_get_contents()?
file_get_contents()
Как сделать цикл каждые 2 минуты 30 секунд?
Это мое решение,
2captcha требуется около 5 секунд и 100 секунд, чтобы решить captcha's.
captcha's
В моем последнем коде ошибка была во сне (23);
<?php echo 'Starting Get Token....<br/>'; echo date("Y:m:d g:i:s"); $apiKey = "MY API KEY"; $googleKey = "6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0"; $pageUrl = "https://example.com"; $time = time(); while ( true ) { $ctx=stream_context_create(array('http'=> array( 'timeout' => 20 // 30 sec ) )); $retrieve= file_get_contents("http://2captcha.com/in.php?key=".$apiKey."&method=userrecaptcha&googlekey=".$googleKey."&pageurl=".$pageUrl, FALSE,$ctx); var_dump($retrieve); if (empty($retrieve)) { $retrieve= file_get_contents("http://2captcha.com/in.php?key=".$apiKey."&method=userrecaptcha&googlekey=".$googleKey."&pageurl=".$pageUrl, FALSE,$ctx); } $first = array($retrieve); $result = explode('OK|',$first[0]); $hello = $result[1]; $con="http://2captcha.com/res.php?key=".$apiKey."&action=get&id=".$hello; sleep(107); $getting = file_get_contents($con); $second = array($getting); $secondresult = explode('OK|',$second[0]); $x = $secondresult[1]; echo $x; echo'<br/>'; echo'<br/>'; if (!empty($x)) { echo 'Task Finished ... <br/>'; echo date("Y:m:d g:i:s"); file_put_contents( 'token.txt', $x ); sleep(120); } } ?>