Example #1
0
function s_http_response($url, &$params = false, $method = "get")
{
    if (s_bad_string($url)) {
        return false;
    }
    if ($params === false) {
        $params = array();
    }
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_VERBOSE, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    if (isset($_SERVER['HTTP_USER_AGENT'])) {
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    }
    if (isset($params["cookie"])) {
        //有cookie
        $arr = array();
        foreach ($params["cookie"] as $key => $value) {
            $arr[] = $key . "=" . rawurlencode($value);
        }
        curl_setopt($curl, CURLOPT_COOKIE, implode(";", $arr));
        unset($params["cookie"]);
    }
    //将余下的post字段添加到http请求中
    $arr = array();
    if ($method === "get") {
        //GET
        foreach ($params as $key => &$value) {
            if (is_scalar($value)) {
                $arr[] = $key . "=" . rawurlencode($value);
            }
            unset($value);
        }
        $url .= (strrpos($url, "?") === false ? "?" : "") . implode("&", $arr);
    } else {
        if ($method === "post") {
            //POST
            curl_setopt($curl, CURLOPT_POST, 1);
            if (isset($params["_name"]) && isset($params["_data"])) {
                //有图片数据提交
                _s_http_post1($curl, $params);
            } else {
                //简单数据提交
                _s_http_post2($curl, $params);
            }
        }
    }
    //加载URL
    curl_setopt($curl, CURLOPT_URL, $url);
    $ret = curl_exec($curl);
    curl_close($curl);
    //var_dump($params);
    //var_dump($ret);
    return $ret;
}
Example #2
0
function s_http_response($url, &$params = false, $method = "get", $auto = true)
{
    if (s_bad_string($url)) {
        return false;
    }
    if ($params === false) {
        $params = array();
    }
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_VERBOSE, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    if (isset($_SERVER['HTTP_USER_AGENT'])) {
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    }
    if ($auto === true) {
        //只有本站内应用才携带COOKIE
        if (isset($params["cookie"])) {
            //有cookie
            $arr = array();
            foreach ($params["cookie"] as $key => $value) {
                $arr[] = $key . "=" . rawurlencode($value);
            }
            curl_setopt($curl, CURLOPT_COOKIE, implode(";", $arr));
            unset($params["cookie"]);
        }
        ////////////////////////////////////////////////////////////////////////////////
        //特殊变量(_username,和_password),用于给http添加用户名及密码
        //
        $userpass = "";
        if (isset($params['_username'])) {
            $userpass = $params['_username'];
        }
        if (isset($params['_password'])) {
            $userpass = $userpass . ':' . $params['_password'];
        }
        if ($userpass) {
            //有用户名与密码添加到http头部
            curl_setopt($curl, CURLOPT_USERPWD, $userpass);
        }
        //
        ////////////////////////////////////////////////////////////////////////////////
    }
    //将余下的post字段添加到http请求中
    $arr = array();
    if ($method === "get") {
        //GET
        foreach ($params as $key => &$value) {
            if (is_scalar($value)) {
                $arr[] = $key . "=" . rawurlencode($value);
            }
            unset($value);
        }
        $url .= (strrpos($url, "?") === false ? "?" : "") . implode("&", $arr);
    } else {
        if ($method === "post") {
            //POST
            curl_setopt($curl, CURLOPT_POST, 1);
            if (isset($params["_name"]) && isset($params["_data"])) {
                //有图片数据提交
                _s_http_post1($curl, $params);
            } else {
                //简单数据提交
                _s_http_post2($curl, $params);
            }
        }
    }
    //设置问部referer
    $referer = '';
    if (isset($_SERVER['HTTP_REFERER'])) {
        $referer = $_SERVER['HTTP_REFERER'];
    }
    curl_setopt($curl, CURLOPT_REFERER, $referer);
    //加载URL
    curl_setopt($curl, CURLOPT_URL, $url);
    $ret = curl_exec($curl);
    curl_close($curl);
    return $ret;
}