亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php數據轉換為htmltable或者csv文件

2020-03-22 17:28:22
字體:
來源:轉載
供稿:網友
  • 應用場景:游戲中的很多業務已經遷移到了redis上,但是redis中的數據在運維層面很難展現,通過php-redis將redis中的set或者hash轉換為php中的array,然后映射為html中的table

    主要設計點:table的基本單位是單元格row_field_node,多個row_field_node組成row_data, tile + 多個row_data = table。因為每個單元格都可能有對應的超鏈接響應,

    所以row_field_node數據結構是這樣的:

    class row_field_node{        public $data;           //顯示的數據        public $action;         //對應的超鏈接        public $param;          //超鏈接需要傳入的參數        public $target;         //超鏈接要展現在那個frame中        public function __construct($data, $action, $param, $target)        {                $this->data     = $data;                $this->action   = $action;                $this->param    = $param;                $this->target   = $target;        }}

    array中的數組與hash可以輸出為html table或者是csv文件,具體實現見代碼:

    <?phpheader("Content-type: text/html; charset=utf-8");$domain_name = "192.168.1.1";class row_field_node{	public $data;	public $action;	public $param;	public $target;	public function __construct($data, $action, $param, $target)	{		$this->data 	= $data;                      		$this->action 	= $action;                   		$this->param 	= $param;     		$this->target 	= $target;                      	}}class xtable{	private $title_list,$row_list,$fonts,$table_tag;	public function __construct()	{		$this->title_list=array();                          // strings with titles for first row 		$this->row_list=array();                          // data to show on cells		$this->fonts=array("#EEEEEE","#CCEEEE");      // background colors for odd and even rows		$this->table_tag="";                            // extra html code for table tag	}	public function set_table_tag($table_tag)                       // add some html code for the tag table	{		$this->table_tag=$table_tag;	}	public function background($fonts) 	{		if (is_array($fonts)) 		{			$this->fonts=$fonts; 		}		else		{ 			$this->fonts=array($fonts,$fonts);		}	}	public function addrow($row_data) 	{		$this->row_list[]=$row_data;	}	public function hash_output($data)	{		$this->title_list=array("field", "value");		foreach($data as $key=> $value)		{			$row_data = array();			$field_data = new row_field_node($key, "", "", "");			array_push($row_data, $field_data);			$field_data = new row_field_node($value, "", "", "");			array_push($row_data, $field_data);			$this->addrow($row_data);		}		return $this->html();	}	public function set_output($title, $data, $desc = '')	{		$this->title_list = $title;		$this->row_list = $data;		echo "total:".count($data).' '.$desc . "<br>";		return $this->html();	}	public function html()	{		$cfondos=$this->fonts;		//output title		$output_content="<tr>";		$t_count=count($this->title_list);		for($t_idx = 0; $t_idx < $t_count; $t_idx++)		{			$output_content.=sprintf("<th>%s</th>",$this->title_list[$t_idx]);		}		$output_content.="</tr>";		//start outputing data rows		$table_row_content="";		$row_count=count($this->row_list);		for($row_idx = 0; $row_idx < $row_count; $row_idx++)		{			$table_row_content .= sprintf("<tr style='background-color:%s'>", $this->fonts[$row_idx % 2]);						$line_data_list = $this->row_list[$row_idx];						$col_count = count($line_data_list);			if($col_count != $t_count)			{				echo "row field count not match title count|col:".$col_count."|title:".$t_count;				exit;			}			for($col_idx = 0; $col_idx < $col_count; $col_idx++)			{				Global $domain_name;				if($line_data_list[$col_idx]->action != "")				{					//echo $line_data_list[$col_idx]->action."----".$line_data_list[$col_idx]->param."----".$line_data_list[$col_idx]->target."----".$line_data_list[$col_idx]->data."===============";					$table_row_content.=sprintf("<td align="center"><a href="http://$domain_name/%s?%s" target='%s'>%s</a></td>",						$line_data_list[$col_idx]->action, $line_data_list[$col_idx]->param, $line_data_list[$col_idx]->target,						$line_data_list[$col_idx]->data);									}				else				{					$table_row_content.=sprintf("<td align="center"> %s</a>        </td>", $line_data_list[$col_idx]->data);				}			}			$table_row_content.="</tr>";		}		return sprintf("<table cellpadding='0' cellspacing='0' border='1' %s>%s%s</table>",$this->table_tag,$output_content,$table_row_content);	}	public function csv_output($title, $data)	{		$this->title_list = $title;		$this->row_list = $data;		echo "total:".count($data)."<br>";		return $this->csv();	}	public function csv()	{		$file_name = time(0).".rar";		$fp = fopen($file_name, 'w');		$t_count=count($this->title_list);		//start outputing data rows		$row_count=count($this->row_list);		$file_data = "";		$csv_row_data = "";    for($t_idx = 0; $t_idx < $t_count; $t_idx++)		{		  $csv_row_data = $csv_row_data." ".$this->title_list[$t_idx];		}				$file_data = $file_data.$csv_row_data."";				for($row_idx = 0; $row_idx < $row_count; $row_idx++)		{						$line_data_list = $this->row_list[$row_idx];						$col_count = count($line_data_list);			if($col_count != $t_count)			{				echo "row field count not match title count|col:".$col_count."|title:".$t_count;				exit;			}			$csv_row_data = "";			for($col_idx = 0; $col_idx < $col_count; $col_idx++)			{				Global $domain_name;				$csv_row_data = $csv_row_data." ".$line_data_list[$col_idx]->data;			}			$file_data = $file_data.$csv_row_data."";		}		fwrite($fp, $file_data);		Global $domain_name;		echo "<br><a href='http://$domain_name/cupteam_info/$file_name' target='detail'>csvfile:$file_name</a>";	}}?>


    示例:

        $real_server_list = array();    foreach($server_list as $server_key)    {        $temp_array = explode(":", $server_key);        $filed_node = new row_field_node();        $filed_node->data = $temp_array[1];        $filed_node->action = "cupteam/get_guild_list_output.php";        $filed_node->param = "input_id=".$filed_node->data;        $filed_node->target = "detail";        $row_data = array($filed_node);        array_push($real_server_list, $row_data);    }    $t1=new xtable();    echo $t1->set_output(array("server_id"), $real_server_list);

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    久久精品91久久久久久再现| 亚洲欧美国产精品va在线观看| 国产成人精品视频在线| 国产亚洲一区精品| 亚洲精品自拍第一页| 国产在线观看精品| 欧美精品在线看| 在线看国产精品| 国产成人av网| 久久亚洲国产精品成人av秋霞| 欧美性理论片在线观看片免费| 黑人巨大精品欧美一区二区三区| 欧美黄色三级网站| 91大神在线播放精品| www国产亚洲精品久久网站| 国产午夜精品免费一区二区三区| 亚洲精品综合精品自拍| 色悠悠久久88| 欧美性极品xxxx娇小| 国产免费一区二区三区香蕉精| 日韩欧美第一页| 美日韩精品视频免费看| 亚洲女人天堂成人av在线| 亚洲图片制服诱惑| 俺去啦;欧美日韩| 欧美超级乱淫片喷水| 欧洲成人性视频| 久久久爽爽爽美女图片| 欧美日本高清一区| 91牛牛免费视频| 91av视频在线观看| 欧美在线www| 午夜精品福利电影| 欧美亚洲视频在线看网址| 国产精品国产亚洲伊人久久| 成人a在线视频| 亚洲电影免费观看高清完整版| 欧美视频不卡中文| 91久久国产精品91久久性色| 久久成人在线视频| 欧美—级高清免费播放| 午夜精品一区二区三区视频免费看| 精品视频久久久久久久| 中文字幕日本精品| 欧美在线一级va免费观看| 91国产高清在线| 亚洲va久久久噜噜噜| 中文字幕精品视频| 成人黄色免费网站在线观看| 欧美夫妻性生活视频| 91免费精品视频| 国产视频精品一区二区三区| 日韩精品极品在线观看播放免费视频| 欧美激情视频在线| 国产999精品久久久影片官网| 亚洲欧美日韩区| 亚洲美女黄色片| 色诱女教师一区二区三区| 欧美性少妇18aaaa视频| 欧美日韩国产精品一区| 亚洲精品ady| www.亚洲人.com| 日韩中文在线中文网三级| 日本欧美黄网站| 亚洲美女性视频| 欧美大码xxxx| 亚洲精品99久久久久| 国产一区二区三区在线观看网站| 久久天堂av综合合色| 国产精品高潮呻吟久久av野狼| 性欧美视频videos6一9| 久久影视电视剧免费网站清宫辞电视| 欧美裸体xxxxx| 久久久久久成人精品| 欧美一级免费看| 91精品免费看| 最近中文字幕日韩精品| 成人免费视频97| 欧美孕妇毛茸茸xxxx| 欧美刺激性大交免费视频| 成人av在线网址| 亚洲欧美日韩国产中文| 国产精品1区2区在线观看| 91国在线精品国内播放| 欧美wwwxxxx| 国产成人av网| 成人伊人精品色xxxx视频| 国产成人精品日本亚洲专区61| 精品久久久久久久久久ntr影视| 97在线免费观看视频| 国产成人精品一区二区在线| 奇门遁甲1982国语版免费观看高清| 欧美成人免费视频| 国产精品第2页| 国产精品久久久久久影视| 欧美激情一区二区三区高清视频| 亚洲电影免费观看高清完整版在线| 亚洲最大成人免费视频| 成人精品aaaa网站| 韩国19禁主播vip福利视频| 欧美亚洲成人xxx| 色偷偷91综合久久噜噜| 亚洲欧美三级伦理| 亚洲三级黄色在线观看| 92国产精品视频| 伊人久久久久久久久久久| 日韩中文字幕国产| 亚洲高清在线观看| 国产美女精彩久久| 国产精品丝袜一区二区三区| 国产一区二中文字幕在线看| 国产精品久久久久久久天堂| 亚洲欧美国产制服动漫| 国产在线视频一区| 日韩成人在线电影网| 91欧美日韩一区| 久久综合国产精品台湾中文娱乐网| 欧美一区二区.| 国产精品一区二区久久国产| 午夜精品一区二区三区av| 久久色免费在线视频| 欧美第一黄网免费网站| 国产偷国产偷亚洲清高网站| 日av在线播放中文不卡| 激情亚洲一区二区三区四区| 国产91ⅴ在线精品免费观看| 国产精品久久久久免费a∨大胸| 日韩中文字幕欧美| 久久91亚洲人成电影网站| 日韩在线观看网站| 亚洲乱码一区av黑人高潮| 精品国产视频在线| 九九九久久国产免费| 日韩高清欧美高清| 国产亚洲综合久久| 国产亚洲人成网站在线观看| 久久精品国产欧美亚洲人人爽| 亚洲欧美日韩高清| 国产精选久久久久久| 亚洲区bt下载| 91精品国产综合久久香蕉的用户体验| 欧美国产视频日韩| 这里只有精品久久| 国产精品自产拍高潮在线观看| 欧美日韩激情视频| 日韩电视剧免费观看网站| 中国日韩欧美久久久久久久久| 国产69精品久久久久9| 日韩成人av网址| 在线精品视频视频中文字幕| 国产精品亚洲综合天堂夜夜| 国产剧情日韩欧美| 成人中文字幕在线观看| 日韩在线观看高清| 伊是香蕉大人久久| 最近2019年日本中文免费字幕| 精品视频在线观看日韩| 中文字幕日韩精品有码视频| 午夜精品在线视频| 精品视频一区在线视频| 久久最新资源网| 91精品国产777在线观看| 国产成人综合精品| 在线观看精品国产视频|