Heim > php教程 > php手册 > PHP文件流模拟POST、GET传值

PHP文件流模拟POST、GET传值

WBOY
Freigeben: 2016-06-13 09:38:37
Original
882 Leute haben es durchsucht

如果我们开发facebook上social game,需要调用它的接口来获得用户在facebook上的好友信息。这个时候我们就要访问facebook提供的一个地址呢,当然你在访问他的时候,他需要对你的访问做验证,防止非法请求。这个时候就得向其post|get一些参数。

如下面的地址:

$url_with_get= "http://api.facebook.com/restserver.php?method=facebook.friends.get&session_key=&api_key=1232121311&v=1.0";
$post = array('sig'=>12312123234353);
Nach dem Login kopieren

怎么样从这个地址中获得数据,简单地介绍一下下面的代码:

if(function_exists('curl_init'))
{
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url_with_get);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $result = curl_exec($ch);
  curl_close($ch);
}
else
{
  $content = http_build_query($post)
  $content_length = strlen($content);
  $context =
        array('http' =>
              array('method' => 'POST',
                    'user_agent' => $user_agent,
                    'header' => 'Content-Type: ' . $content_type . "\r\n" .
                                'Content-Length: ' . $content_length,
                    'content' => $content));
    $context_id = stream_context_create($context);
    $sock = fopen($url_with_get, 'r', false, $context_id);
    $result = '';
    if ($sock)
  {
    while (!feof($sock)) 
          $result .= fgets($sock, 4096);
        fclose($sock);
    }
    return $result;
  }
}
Nach dem Login kopieren

上面的代码使用两种方式来调facebook的接口,第一种县判断用户的环境是否开启了curl库,开启了这个库,就采用这种方式来获取请求。里面详细的参数讲解大家可以参考手册。 这里提示一点,由于我们通常情况下需要获得调用接口的返回结果,所以要设置CURLOPT_RETURNTRANSFER这个值,将结果返回到变量中。

第二种方式是直观,将url请求转化为文件流来处理。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage