今天对了一下阿里云视频点播插件,用到了几个公共的方法函数,希望可以给同学们共同学习分享一下,对接其他的接口也可以用的到。
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;
}
后期会陆续的更新中。。。。。