直接调用以下公共函数即可,来源CSDN

/** 
* 通过URL获取页面信息 
* @param string $url 地址 
* @return string 返回页面信息 
*/ 
function get_url($url){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); //设置访问的url地址 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容 
    $result = curl_exec($ch); 
    curl_close ($ch); 
    return $result; 
}


/** 
* 模拟POST提交 
* @param string $url 地址 
* @param string $data 提交的数据 
* @return string 返回结果 
*/ 
function post_url($url, $data){ 
    $curl = curl_init(); // 启动一个CURL会话 
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在 
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器 
    //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 
    //curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer 
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包x 
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制 防止死循环 
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 

    $tmpInfo = curl_exec($curl); // 执行操作 
    if(curl_errno($curl)) 
    { 
    echo 'Errno'.curl_error($curl);//捕抓异常 
    } 
    curl_close($curl); // 关闭CURL会话 
    return $tmpInfo; // 返回数据 
}


/** 
* 对象转化为数组 
* @param object $obj 对象 
* @return array 数组 
*/ 
function object_to_array($obj){ 
    $_arr = is_object($obj) ? get_object_vars($obj) :$obj; 
    foreach ($_arr as $key=>$val){ 
        $val = (is_array($val) || is_object($val)) ? object_to_array($val):$val; 
        $arr[$key] = $val; 
    } 
    return $arr; 
}


/** 
* array转xml 
* @param string $arr array 
* @return string XML 
*/ 
function arrayToXml($arr){ 
    $xml = "<xml>"; 
    
    foreach ($arr as $key=>$val) 
    { 
        if (is_numeric($val)) 
        { 
            $xml.="<".$key.">".$val."</".$key.">"; 
        } 
    }else{ 
        $xml.="<".$key."><![CDATA[".$val."]]></".$key.">"; 
    } 
    
    $xml.="</xml>"; 
    return $xml; 
}


/** 
* 调用api接口 
* @param url $apiurl api.muxiangdao.cn/Article/articleList 接口地址 
* @param array $param ['status'=>'1','page'=>'2','pageshow'=>'10']; 参数(数组格式) 
* @param string $format eg:array(arr),object(obj),json;defalut = array 返回数据格式 
* @param string $method get or post 请求方法 
*/ 
function get_api($apiurl, $param, $format = 'array', $method = 'get'){ 
    if (is_array($param)) { 
        $string = '?'; 
        foreach ($param as $key => $val){ 
            $string .= $key.'='.$val.'&'; 
        } 
        $param = substr($string, 0, -1); 
    } 
    $url = $apiurl.$param; 

    switch (strtolower($method)){ 
        case '':$json = get_url($url);break; 
        case 'get':$json = get_url($url);break; 
        case 'g':$json = get_url($url);break; 
        case 'post':$json = post_url($apiurl,$param);break; 
        case 'p':$json = post_url($apiurl,$param);break; 
        default:$json = get_url($url);break; 
    } 
    
    $start = strpos($json, '{'); 
    $end = -1*(strlen(strrchr($json, '}'))-1); 
    
    if ($end) { 
        $json = substr($json, $start, $end); 
    }else { 
        $json = substr($json, $start); 
    } 

    $obj = json_decode($json); 
    $array = object_to_array($obj); 
    $xml = arrayToXml($array); 
    
    switch ($format){ 
        case 'array':$data = $array;break; 
        case 'arr':$data = $array;break; 
        case 'obj':$data = $obj;break; 
        case 'object':$data = $obj;break; 
        case 'json':$data = $json;break; 
        default:$data = $array; 
    } 
    
    return $data; 
}
最后编辑:2021年01月05日 ©著作权归作者所有

发表评论