1. 程式人生 > >PHP陣列和XML相互轉換的函式,微信中常見的Sign生成函式

PHP陣列和XML相互轉換的函式,微信中常見的Sign生成函式

//陣列轉Xml
function ArrToXml($arr)
{
	if(!is_array($arr) || count($arr) == 0) return '';
	
	$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; 
}
	
//Xml轉陣列
function XmlToArr($xml)
{	
	if($xml == '') return '';
	libxml_disable_entity_loader(true);
	$arr = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);		
	return $arr;
}

//sign生成及檢測sign
function Sign($param){
        if(isset($param['sign'])){
            unset($param['sign']);
        }
        ksort($param);
        $str = urldecode(http_build_query($param));
        $str .= '&key='.self::appKey;
        return strtoupper(md5($str));
    }