PHP研发对接第三方接口常用的一些方法函数

今天对了一下阿里云视频点播插件,用到了几个公共的方法函数,希望可以给同学们共同学习分享一下,对接其他的接口也可以用的到。

1、object转换array

/**
  *object转换array
  *@param $array [object对象]
  * @return  array
*/
function object_array($array){
   if(is_object($array)){
    $array = (array)$array;
   }
   if(is_array($array)){
    foreach($array as $key=>$value){
     $array[$key] = object_array($value);
    }
   }
   return $array;
}

2、请求接口返回内容

/**
 * 请求接口返回内容
 * @param  string $url [请求的URL地址]
 * @param  string $params [请求的参数]
 * @param  int $ipost [是否采用POST形式]
 * @return  string
 */
function juhecurl($url,$params=false,$ispost=0){
    $httpInfo = array();
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
    curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
    curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    if( $ispost ){
        curl_setopt( $ch , CURLOPT_POST , true );
        curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
        curl_setopt( $ch , CURLOPT_URL , $url );
    }else{
        if($params){
            curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
        }else{
            curl_setopt( $ch , CURLOPT_URL , $url);
        }
    }
    $response = curl_exec( $ch );
    if ($response === FALSE) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
    $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
    curl_close( $ch );
    return $response;
}

3、返回iso、Android、ajax的json格式数据

/**
 * 返回iso、Android、ajax的json格式数据
 * @param  array  $data           需要发送到前端的数据
 * @param  string  $message 成功或者错误的提示语
 * @param  integer $code    状态码: SUCCESS:成功  ERROR:失败
 * @return string                 json格式的数据
 */
function ajax_return($data='',$message='成功',$status=‘SUCCESS’,$callback=''){
    $all_data=array(
        'status'=>$status,
        'msg'=>$message,
        'callback'=>$callback,
        );
    if ($data!=='') {
        $all_data['data']=$data;
        // app 禁止使用和为了统一字段做的判断
        $reserved_words=array('id','title','price','product_title','product_id','product_category','product_number');
        foreach ($reserved_words as $k => $v) {
            if (array_key_exists($v, $data)) {
                echo 'app不允许使用【'.$v.'】这个键名 —— 此提示是function.php 中的ajax_return函数返回的';
                die;
            }
        }
    }
    // 如果是ajax或者app访问;则返回json数据 pc访问直接p出来
    echo json_encode($all_data);
    exit(0);
}

4、xml和Array 互相转换

function arrayToXml($arr){
   $xml = "<xml>";
   foreach ($arr as $key=>$val){
       if(is_array($val)){
           $xml.="<".$key.">".$this->arrayToXml($val)."</".$key.">";
       }else{
           $xml.="<".$key.">".$val."</".$key.">";
       }
   }
   $xml.="</xml>";
   return $xml;
}
function xmlToArray($xml,$type=''){
   //禁止引用外部xml实体
   libxml_disable_entity_loader(true);
   //simplexml_load_string()解析读取xml数据,然后转成json格式
   $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
   if ($type == "json") {
       $json = json_encode($xmlstring);
       return $json;
   }
   $arr = json_decode(json_encode($xmlstring), true);
   return $arr;
}

后期会陆续的更新中。。。。。

发布了42 篇原创文章 · 获赞 26 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/doukalove/article/details/81481714