将mysql返回数据转换成XML形式的函数,其中以extract()函数将数组转换成变更可以直接使用
function xml_from_result(TS_DB_result $query,$params=array())
{
//设置默认值
foreach(array('root'=>'root','element'=>'element','newline'=>"\n",'tab'=>"\t") as $key=>$val)
{
if(!isset($params[$key]))
{
$params[$key]=$val;
}
}
//为方便起见创建变量
//extract()从数组中将变量导入到当前的符号表,表示的是就是把默认值和你创建的$params数组合并到一起,如果健有冲突则根据设置来应对
//extract()很重要,下面就可以直接使用$root,$element,$newline等这些变量了
extract($params);
//load的helper助手加载xml文件
get_instance()->load->helper('xml');
//生成结果,这里是由于extract()生成了变更的关系,所以可以直接使用
$xml='<'.$root.'>'.$newline;
while($row = $query->unbuffered_row())
{
$xml .=$tab.'<'.$element.'>'.$newline;
foreach($row as $key=>$val)
{
$xml .=$tab.$tab.'<'.$key.'>'.xml_convert($val).'</'.$key.'>'.$newline;
}
$xml .=$tab .'</'.$element.'>'.$newline;
}
return $xml.'</'.$root.'>'.$newline;
}