file_get_contents()返回一个空数组,stream_context_create()返回资源ID#8,同时重新获取V2升级

时间:2018-03-22 06:37:52

标签: php recaptcha

我正在使用PHP将recaptcha从V1升级到V2。 下面是我们用于通过POST方法发送请求并尝试读取响应以验证验证码输入是否正确的代码。 但我们面临两个问题 1. stream_context_create()返回资源ID#8 2. file_get_contents()返回一个空格数组 请建议我在这个问题上花了两周时间,现在是截止日期 以下是代码段。

$postdata = http_build_query(
                         array(
                                'secret'    =>  $privkey,
                                'response' => $response,
                                 'remoteip'  =>  $remoteip
                                )
                        );

        $opts = array('http' =>
                 array(
                        'method'  => 'POST',
                        'header'  => 'Content-type: application/x-www-form-urlencoded',
                        'content' => $postdata
            )
        );
        $context  = stream_context_create($opts);
        print "Context   is " . $context . "<br>";
        $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context);

        if(implode(null,$response)==null){
            print "File_get_contents Array is empty ";
        }else{
            print "File_get_contents Array has value";
        }

1 个答案:

答案 0 :(得分:0)

file_get_contents返回一个字符串,因此使用implode不是正确的方法。如果你真的想看到响应只是var_dump($response)那么你会看到。

第二个$contextresource variable,其中包含对外部资源的引用。

  $context  = stream_context_create($opts);
        //print "Context   is " . $context . "<br>";
  $response = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context);
  var_dump($response) ; //Now you can see response