php分页显示hbase数据

在原有HBase分页基础上,增加对特定HBase名称的读写能力,并实现根据页数分页和实时页数显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     放假前写了一个hbase的分页状况,现在来又修饰了一点,能显示传值过来的hbase名进行读写,根据每个页数来进行分页和实时的页数显示。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<style type="text/css">
body,table{
        font-size:13px;
}
table{
     /*   table-layout:fixed;
        empty-cells:show; 
        border-collapse: collapse;
        margin:0 auto;
    border:1px solid #cad9ea;
     */
        table-layout:fixed;
        border-collapse: collapse;
       
    border:0px solid #cad9ea;
       
}
th{
        height:22px;
    font-size:13px;
    font-weight:bold;
    background-color:#CCCCCC;
    text-align:center;
}
td{
        color:#666;
        font:bold 13px/15px
           helvetica,arial,verdana,sans-serif;
        backgroud-color:#f5f5f5;
        height:20px;
}

.tableTitle{font-size:14px; font-weight:bold;}
.avb {
  background-color: #99ffff;
}
.over {
  background:#bcd4ec;
}

</style>

</style>


<link href="dist/css/bootstrap.css" rel="stylesheet"/>
<script src="dist/jquery-2.1.1.min.js"></script>
<script src="dist/js/bootstrap.min.js"></script>
<script type="text/javascript">

var temptr = $();
$(function(){
  $("#tableid").on("click","tr",function(event){
    temptr.removeClass("avb");
    temptr = $(this);
    temptr.addClass("avb")
  });
});

$(function(){
  $("#tableid tr").mouseover(function(){
    $(this).addClass("over");}).mouseout(function(){
      $(this).removeClass("over");})
});


/*fuction GetData(data)
{
	alert(data);
	document.getElementById("id1").value=data;
}
*/
</script>


</head>



<body>
<div style="margin:0 auto;width:1500px; font-size:12px; line-height:20px;">
  <div style="width:100%;height:30px; font-size:16px; font-weight:bold; text-align:center;">
  <div style="right:auto;">
  </div>
  </div>
  
<?php  

error_reporting(E_ALL^E_NOTICE);
  
use Thrift\Transport\TSocket;
use Thrift\Transport\TSocketPool;
use Thrift\Transport\TFramedTransport;
use Thrift\Transport\TBufferedTransport;
use Thrift\Protocol\TBinaryProtocol;
use HBase\HBaseClient;

  
$GLOBALS['THRIFT_ROOT'] = './php/lib/Thrift';  
  
require_once( $GLOBALS['THRIFT_ROOT'] . '/Thrift.php' );  
require_once( $GLOBALS['THRIFT_ROOT'] . '/Transport/TSocket.php' ); 
require_once( $GLOBALS['THRIFT_ROOT'] . '/Transport/TTransport.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Transport/TBufferedTransport.php' );  
require_once( $GLOBALS['THRIFT_ROOT'] . '/Protocol/TProtocol.php' );  
require_once( $GLOBALS['THRIFT_ROOT'] . '/Protocol/TBinaryProtocol.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Type/TMessageType.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Factory/TStringFuncFactory.php' ); 
require_once( $GLOBALS['THRIFT_ROOT'] . '/StringFunc/TStringFunc.php' ); 
require_once( $GLOBALS['THRIFT_ROOT'] . '/StringFunc/Core.php' ); 
require_once( $GLOBALS['THRIFT_ROOT'] . '/Type/TType.php' ); 
require_once( $GLOBALS['THRIFT_ROOT'] . '/Exception/TException.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Exception/TApplicationException.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Exception/TTransportException.php' );
require_once( $GLOBALS['THRIFT_ROOT'] . '/Exception/TProtocolException.php' );
  
require_once $GLOBALS['THRIFT_ROOT'].'/Types.php';
require_once $GLOBALS['THRIFT_ROOT'].'/Hbase.php';

$socket = new TSocket('172.16.27.12', '9090');  
  
$socket->setSendTimeout(10000); // Ten seconds (too long for production, but this is just a demo ;)  
$socket->setRecvTimeout(20000); // Twenty seconds  
$transport = new TBufferedTransport($socket);  
$protocol = new TBinaryProtocol($transport);  
$client = new HbaseClient($protocol);  


$con = mysql_connect('172.16.27.11','apt','123456');
mysql_select_db("apt", $con);
mysql_query("SET NAMES UTF8",$con);
$transport->open(); 

//$table_name = 'test';


//$table_name = $_GET['q'];
//setcookie('mycookie1',$table_name);                                                 
//$table_name = "snort"; 
session_start();
if(isset($_GET['q']))
{
	$_SESSION['q'] = $_GET['q'];
	$table_name = $_GET['q'];
}
elseif(isset($_SESSION['q']))
{
	$table_name = $_SESSION['q'];
}
echo "$table_name";
$start_row = ""; 
$family = array( "$table_name" );
$attributes = array ();
$scanner = $client->scannerOpen( $table_name, $start_row , $family , $attributes );

?>


<table id="tableid" class="table table-bordered">
<span display:block;width:110px;height:40px;></span>
<span hover{background:0 -40px;}></span>
 

     <thead>
      
      <th align="center">Classification</th>
      <th align="center">Priority</th>
      <th align="center">dst_ip</th>
     
      <th align="center">message</th>
      <th align="center">plugin_id</th>
      <th align="center">plugin_sid</th>
      <th align="center">protocal</th>
      <th align="center">src_ip</th>
      
      <th align="center">time</th>
      <th align="center">dsp_port</th>
      <th align="center">src_port</th>
     </thead>
 
<?php
if(!$_GET['page'])
    $page=1;
else 
	$page=$_GET['page'];

$list_num=5;

//$n=0;
$i = 1;
while (true)
{
	$get_arr = $client->scannerGet( $scanner );
	if($get_arr == null) break;
	if($i<($page-1)*$list_num +1 || $i > $page*$list_num)
	{
	//echo "asdfasdf".$i;
		//$n++;
		$i++;
		$num++;
		continue;
	}

	foreach ( $get_arr as $TRowResult )
	{
	echo '<tr style="height:53px">';
	$column = $TRowResult->columns;
	foreach ($column as $family_column=>$Tcell){
		echo '<td align="center"><b>';
		echo (" {$Tcell->value} "); 
		echo '</td>';
	} 
	echo '</tr>';
	}
	//$n++;
	$i++;
	$num++;
}
echo $num;
echo "<p align=\"center\">";
echo "目前共有".$num."条记录  "; 
$p_count=ceil($num/$list_num); 
echo "共分".$p_count."页显示  ";
echo "当前显示第".$page."页";
echo "<p>";

$prev_page=$page-1;
$next_page=$page+1;
echo "<p align=\"center\">";
if ($page<=1)
{
	echo "第一页 |";
}
else 
{
	echo "<a href='TryAgain2.php?page=1'>第一页</a> |";
} 
if ($prev_page<1)
{
	echo "上一页 |";
}
else 
{
	echo "<a href='TryAgain2.php?page=$prev_page'>上一页</a> |";
} 
if ($next_page>$p_count)
{
	echo "下一页 |";
}
else 
{
	echo "<a href='TryAgain2.php?page=$next_page'>下一页</a> |";
} 
if ($page>=$p_count)
{
	echo "最后一页</p>\n";
}
else 
{
	echo "<a href='TryAgain2.php?page=$p_count'>最后一页</a></p>\n";
}
$client->scannerClose( $scanner );
$transport->close(); 
?>

</table>
</div>
</body>
</html>

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在 IT 领域,Web 服务是一种借助网络实现通信的软件系统,通常以 XML 作为数据交换格式。WSDL 是一种用于描述 Web 服务的标准语言,它明确了服务的位置、接口以及调用方式等关键信息。本文将深入探讨如何依据 WSDL 地址调用 WebService 接口,并介绍相关工具的应用。 首先,WSDL 文件本质上是一个 XML 文档,详细规定了服务提供方与消费方的交互细节,涵盖服务地址、消息格式、操作以及服务契约等内容。借助 WSDL,开发者能够清楚知晓如何与 Web 服务进行交互,包括输入输出消息的具体结构。 其次,SOAP 是 Web 服务常用的传输协议,它在 HTTP、SMTP 等基础协议之上对 XML 消息进行封装。WSDL 中定义的服务操作一般对应于 SOAP 消息中的方法。 要调用 Web 服务,开发者通常需要一个客户端代理类,该类封装了与服务交互的所有逻辑。当下多数开发环境都提供了从 WSDL 自动生成代理类的工具。比如在 Java 环境中,可利用 Apache CXF、Axis2 等库,或者借助 Maven 的 wsimport 插件来实现。在 .NET 环境下,Visual Studio 能够直接从 WSDL 生成服务引用。 生成代理类后,调用 Web 服务就如同调用本地方法一样便捷。以 Java 为例,创建代理类实例后,即可调用其方法并传递相应参数。在 .NET 中,创建服务代理对象后,也能通过它来调用服务方法。 文中提到的“源码 工具”标签,可能涉及一些协助开发者处理 WSDL 的工具。例如,SoapUI 是一款广受欢迎的测试工具,可用于测试 Web 服务,包括基于 WSDL 创建测试用例。此外,wsdl2java 和 wsdl2dotnet 分别是 Java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值