Всем привет, есть код отправления капчи яндекса в сервис антикапчи
| Код | public function checkforrobot($content,$post,$REFFER) { if(stripos($content,"Запросы с вашего адреса похожи на автоматические, пожалуйста введите цифры, которые вы видите на картинке.")!==FALSE) { $anticapcha=new anticapcha();
preg_match_all("/<input type=\"hidden\" name=\"key\" value=\"(.*?)\"/i",$content,$KeyArray,PREG_PATTERN_ORDER); preg_match_all("/<input type=\"hidden\" name=\"retpath\" value=\"(.*?)\"/i",$content,$retpathArray,PREG_PATTERN_ORDER); preg_match_all("/<img src=\"http:\/\/captcha\.yandex\.net\/image\?key=(.*?)\">/i",$content,$ImageArray,PREG_PATTERN_ORDER); $captchaContent=$this->dryconnect("http://captcha.yandex.net/image?key=".$ImageArray[1][0],"",0); $content_type=$this->Lastinfo['content_type']; $extention="jpg"; /* switch($content_type) { case 'image/jpeg': $extention="jpg"; break; } */ $fp = fopen ("./code.$extention", "w+"); fwrite ($fp, $captchaContent); fclose ($fp); $code=$anticapcha->recognize("./code.$extention", "871b63251f0537e9081a0101648e8a26", true); $postA="retpath=".$retpathArray[1][0]."&key=".$KeyArray[1][0]."&rep=$code"; $validationURL="http://captcha.yandex.net/send.xml"; print("<H1>POSTing to $validationURL</H1><hr><hr><br>"); $aftercaptcha=$this->dryconnect($validationURL,$postA,0);//"http://captcha.yandex.net/send.xml" $validationURL="http://captcha.yandex.net/&retpath=".$retpathArray[1][0]."&key=".$KeyArray[1][0]."&rep=$code"; $aftercaptcha=$this->dryconnect($validationURL,$postA,0); // $aftercaptcha=$this->dryconnect($retpathArray[1][0],"",0); $aftercaptcha=$this->dryconnect($retpathArray[1][0],$post,0); // $aftercaptcha=$this->dryconnect($REFFER,"",0); return $aftercaptcha; }
// print($aftercaptcha); return false;
|
Правильно ли я его написал в плане регулярных выражений, так как яндекс в очередной раз обновил что то, а я в этом плохо понимаю. Заранее спасибо. За любые найденные ошибки заранее спасибо.
|