سؤال

$page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','randkey'=>$randKey[0],'id'=>'c_1'));
$exp = explode('recaptcha_image',$page);

لم يتم العثور على ID recaptcha_image على الرغم من أنني إذا كنت echo $page; سيتم عرض صفحة الويب وحتى بشكل مدهش حتى Recpatcha Div (مع الصورة نفسها). لا ينبغي على Curl تحميل الصورة لـ Recaptcha ، لكن بطريقة ما هي عندما أحاول العثور على Div ، فهي ليست موجودة. هل هناك طريقة لالتقاط عنوان URL لصورة Recaptcha؟

هل كانت مفيدة؟

المحلول

ستحتاج إلى استخدام محلل HTML مثل هذا PHP Simple HTML DOM Parser. شيء من هذا القبيل سوف يعمل ثم:

<?php
$page = $curl->post($baseUrl.'/submit.php', array('url'=>$address,'phase'=>'1','randkey'=>$randKey[0],'id'=>'c_1'));
$html->load($page);
$ret = $html->find('script[src^=http://api.recaptcha.net/]',0);
$src = $ret->src;
//I'm not sure how you get an url with your library, so this might or might not work
$page = $curl->get($src);
preg_match("%challenge\ :\ '([a-zA-Z0-9-_]*)',%", $page, $matches);
$img = "http://api.recaptcha.net/image?c=".$matches[1];
?>

هذا يجلب الصفحة أولاً ، وتوصيفها لعنوان URL البرنامج النصي ، ثم يفتح عنوان URL لهذا التحدي الذي يتم إلحاقه بعد ذلك بعنوان URL نفسه. ستكون الصورة في $img عامل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top