闲着无聊。。array2xml
时间:2011-01-04 来源:es_liu
<?php
/*********************************************************
* class name :array2xml.class.php
* author:liuensong
* creating time:2011-01-05
* instructions:
* $arr2xml = new array2xml();
* $arr2xml->f_field = 'parent_id';//必须设置的父id字段名称
* $arr2xml->id_field = 'id';//必须设置id列名称,一般都是ID列
* $arr2xml->re_field = 'caption';//要输出的列字段名称
* $arr2xml->caption = '部门树结构';//设置最高层节点
* $arr2xml->pg_connect('localhost', 'postgres', '123456', 'juren_info');//连接数据库
* $query = "SELECT
* depts.id AS id,
* depts.caption AS caption,
* depts.parent_id AS parent_id
* FROM
* public.depts";
* $arr = $arr2xml->pg_query($query);
* // echo '<pre>';
* // print_r($arr);
* $xml = $arr2xml->return_xml($arr);//数组$arr中必须有id,父id字段
* echo $xml;
************************************************************/
class array2xml{
var $arr = array();//需要转换的一维数组
var $f_id = '';//父ID
var $xml = '';//返回的xml文件
var $host = '';//要连接的服务器
var $dbuser = '';//数据库用户名
var $dbpass = '';//数据库密码
var $dbname = '';//要连接的数据库名称
var $db = '';
var $result = '';
var $f_field = '';//父id字段名称
var $id_field = '';//id名称
var $re_field = '';//要输出的字段名称
var $caption = '';
/*****************************
* 连接数据库
* return: 连接标识符
****************************/
public function pg_connect($host,$dbuser,$dbpass,$dbname){
$db = pg_connect("host=$host dbname=$dbname user=$dbuser password=$dbpass");
//or die('Could not connect: ' . pg_last_error());
if ($db){
return false;
}else{
$this->db = $db;
}
}
/****************************
* 执行SQL查询,返回数组
* $query: sql语句
* return: array
****************************/
public function pg_query($query){
// 执行 SQL 查询
//$result = pg_query($query) or die('Query failed: ' . pg_last_error());
$this->result = $result = pg_query($query) or die('Query Error!');
while (FALSE != ($row = pg_fetch_assoc($result))){
//$arr[] = array($row['id'],$row['parent_id'],$row['caption']);
$arr[] = $row;
};
return $arr;
}
/***************************
* 释放结果集
***************************/
public function pg_result(){
$result = $this->result;
pg_free_result($result);
}
/**************************
* 关闭数据库连接
**************************/
public function pg_close(){
$link = $this->db;
pg_close($link);
}
/****************************
* parameter:$arr array
* return: xml file
****************************/
public function return_xml($arr){
if($this->f_field !='' && $this->id_field !=''){
$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '<tree id="0">';
$xml .= $this->array_xml($arr,$this->f_field,$this->id_field,$this->re_field);
$xml .= '</tree>';
return $xml;
}else{
exit('先设置父id和id列字段名称');
}
}
/****************************
* return: xml file
****************************/
public function array_xml($arr,$f_field,$id_field,$re_field,$f_id=1){
$count = count($arr);
$xml .= '<item id="'.$f_id.'" text = "'.$this->caption.'">';
for($i=0;$i<$count;$i++){
if($arr[$i][$f_field]==$f_id){
$this->caption = $arr[$i][$re_field];
$xml .= $this->array_xml($arr,$this->f_field,$this->id_field,$this->re_field,$arr[$i][$id_field]);
}
}
$xml .= '</item>';
return $xml;
}
}
//////////////////////////////////////////////////////////////////
// $arr2xml = new array2xml();
//
// $arr2xml->f_field = 'parent_id';
// $arr2xml->id_field = 'id';
// $arr2xml->re_field = 'caption';
// $arr2xml->caption = '部门树结构';
//
// $arr2xml->pg_connect('localhost', 'postgres', '123456', 'juren_info');//连接数据库
// $query = "SELECT
// depts.id AS id,
// depts.caption AS caption,
// depts.parent_id AS parent_id
// FROM
// public.depts";
//
// $arr = $arr2xml->pg_query($query);
//
// echo '<pre>';
// print_r($arr);
/*
* 数组格式
$arr = Array
(
[0] => Array
(
[id] => 377
[caption] => 清河小营英语组
[parent_id] => 253
)
[1] => Array
(
[id] => 378
[caption] => 清河小营文体组
[parent_id] => 253
)
[2] => Array
(
[id] => 379
[caption] => 清河小营教务组
[parent_id] => 253
)
[3] => Array
(
[id] => 389
[caption] => 客户服务中心
[parent_id] => 1
)
[4] => Array
(
[id] => 399
[caption] => 西安分校
[parent_id] => 392
)
.....
*/
//$xml = $arr2xml->return_xml($arr);
//echo $xml;
?>
/*********************************************************
* class name :array2xml.class.php
* author:liuensong
* creating time:2011-01-05
* instructions:
* $arr2xml = new array2xml();
* $arr2xml->f_field = 'parent_id';//必须设置的父id字段名称
* $arr2xml->id_field = 'id';//必须设置id列名称,一般都是ID列
* $arr2xml->re_field = 'caption';//要输出的列字段名称
* $arr2xml->caption = '部门树结构';//设置最高层节点
* $arr2xml->pg_connect('localhost', 'postgres', '123456', 'juren_info');//连接数据库
* $query = "SELECT
* depts.id AS id,
* depts.caption AS caption,
* depts.parent_id AS parent_id
* FROM
* public.depts";
* $arr = $arr2xml->pg_query($query);
* // echo '<pre>';
* // print_r($arr);
* $xml = $arr2xml->return_xml($arr);//数组$arr中必须有id,父id字段
* echo $xml;
************************************************************/
class array2xml{
var $arr = array();//需要转换的一维数组
var $f_id = '';//父ID
var $xml = '';//返回的xml文件
var $host = '';//要连接的服务器
var $dbuser = '';//数据库用户名
var $dbpass = '';//数据库密码
var $dbname = '';//要连接的数据库名称
var $db = '';
var $result = '';
var $f_field = '';//父id字段名称
var $id_field = '';//id名称
var $re_field = '';//要输出的字段名称
var $caption = '';
/*****************************
* 连接数据库
* return: 连接标识符
****************************/
public function pg_connect($host,$dbuser,$dbpass,$dbname){
$db = pg_connect("host=$host dbname=$dbname user=$dbuser password=$dbpass");
//or die('Could not connect: ' . pg_last_error());
if ($db){
return false;
}else{
$this->db = $db;
}
}
/****************************
* 执行SQL查询,返回数组
* $query: sql语句
* return: array
****************************/
public function pg_query($query){
// 执行 SQL 查询
//$result = pg_query($query) or die('Query failed: ' . pg_last_error());
$this->result = $result = pg_query($query) or die('Query Error!');
while (FALSE != ($row = pg_fetch_assoc($result))){
//$arr[] = array($row['id'],$row['parent_id'],$row['caption']);
$arr[] = $row;
};
return $arr;
}
/***************************
* 释放结果集
***************************/
public function pg_result(){
$result = $this->result;
pg_free_result($result);
}
/**************************
* 关闭数据库连接
**************************/
public function pg_close(){
$link = $this->db;
pg_close($link);
}
/****************************
* parameter:$arr array
* return: xml file
****************************/
public function return_xml($arr){
if($this->f_field !='' && $this->id_field !=''){
$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '<tree id="0">';
$xml .= $this->array_xml($arr,$this->f_field,$this->id_field,$this->re_field);
$xml .= '</tree>';
return $xml;
}else{
exit('先设置父id和id列字段名称');
}
}
/****************************
* return: xml file
****************************/
public function array_xml($arr,$f_field,$id_field,$re_field,$f_id=1){
$count = count($arr);
$xml .= '<item id="'.$f_id.'" text = "'.$this->caption.'">';
for($i=0;$i<$count;$i++){
if($arr[$i][$f_field]==$f_id){
$this->caption = $arr[$i][$re_field];
$xml .= $this->array_xml($arr,$this->f_field,$this->id_field,$this->re_field,$arr[$i][$id_field]);
}
}
$xml .= '</item>';
return $xml;
}
}
//////////////////////////////////////////////////////////////////
// $arr2xml = new array2xml();
//
// $arr2xml->f_field = 'parent_id';
// $arr2xml->id_field = 'id';
// $arr2xml->re_field = 'caption';
// $arr2xml->caption = '部门树结构';
//
// $arr2xml->pg_connect('localhost', 'postgres', '123456', 'juren_info');//连接数据库
// $query = "SELECT
// depts.id AS id,
// depts.caption AS caption,
// depts.parent_id AS parent_id
// FROM
// public.depts";
//
// $arr = $arr2xml->pg_query($query);
//
// echo '<pre>';
// print_r($arr);
/*
* 数组格式
$arr = Array
(
[0] => Array
(
[id] => 377
[caption] => 清河小营英语组
[parent_id] => 253
)
[1] => Array
(
[id] => 378
[caption] => 清河小营文体组
[parent_id] => 253
)
[2] => Array
(
[id] => 379
[caption] => 清河小营教务组
[parent_id] => 253
)
[3] => Array
(
[id] => 389
[caption] => 客户服务中心
[parent_id] => 1
)
[4] => Array
(
[id] => 399
[caption] => 西安分校
[parent_id] => 392
)
.....
*/
//$xml = $arr2xml->return_xml($arr);
//echo $xml;
?>
相关阅读 更多 +
排行榜 更多 +