php获取其他接口的返回值

这个果然很好用:
http://zhidao.baidu.com/question/444120411.html
 function make_request($url, $params , $timeout =30){
    set_time_limit(0);
    $str="";
    if($params!="")
    {
        foreach ($params as $k=>$v) {
                    if (is_array($v)) {
                            foreach ($v as $kv => $vv) {
                                    $str .= '&' . $k . '[' . $kv  . ']=' . urlencode($vv);
                            }
                    } else {
                            $str .= '&' . $k . '=' . urlencode($v);
                    }
            }
    }
        if (function_exists('curl_init')) {
                // Use CURL if installed...
                $ch = curl_init();
                $header=array(
                        'Accept-Language: zh-cn',
                        'Connection: Keep-Alive',
                        'Cache-Control: no-cache'
                );
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $str);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
                if($timeout > 0)curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
                $result = curl_exec($ch);
                $errno = curl_errno($ch);
                curl_close($ch);
                return $result;
        } else {
                $context = array(
                        'http' => array(
                                'method' => 'POST',
                                'header' => 'Content-type: application/x-www-form-urlencoded'."\r\n".
                                'Content-length: ' . strlen($str),
                                'content' => $str));
                if($timeout > 0)$context['http']['timeout'] = $timeout;
                $contextid = stream_context_create($context);
                $sock = @fopen($url, 'r', false, $contextid);
                if ($sock) {
                        $result = '';
                        while (!feof($sock)) {
                              $result .= fgets($sock, 8192);
                        }
                        fclose($sock);
                }
                else{
                                return 'TimeOut';
                }
        }
        return $result;
}

3个参数:
1 你要访问的页面的url地址。
2 你的请求参数:array(id=>"1",name=>'root'); 按照这样的类型
3 超时时间 默认30秒 很好用的

你可能感兴趣的:(PHP)