
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4 <title>无标题文档</title>
5 </head>
6
7 <body>
8
9
10 <?php
11
12 //加载类
13 include("haoyou.php");
14 include("xwfy.php");
15
16 //造对象
17 $db = new haoyou();
18 $sqlcount = "select count(*) from news";
19 $attrc = $db->Query($sqlcount);
20 $total = $attrc[0][0];
21
22
23 //造分页对象
24 $page = new Page($total,3,"");
25
26 $page->set('head','条数据');
27 //$page->set('prev',"<img src='0063.png' width='15' height='15' />");
28 $page->set('first','第一页');
29
30 //显示
31 $sql = "select * from news ".$page->limit;
32
33 $attr = $db->Query($sql);
34
35 for($i=0;$i<count($attr);$i++)
36 {
37
38 echo "<h1>{$attr[$i][1]}-".date("Y-m-d",time())."</h1>";
39
40 echo "<h3>{$attr[$i][2]}</h3><a href='www.baidu.com'>详情</a><img src='pic/0063.png' width='25' height='25'><hr></hr>";
41 }
42
43
44
45 ?>
46
47 <?php
48 echo $page->fpage();
49 ?>
50 </body>
51 </html>
52
53 //写分页方法
54 <?php
55 /**
56 file: page.class.php
57 完美分页类 Page
58 */
59 class Page {
60 private $total; //数据表中总记录数
61 private $listRows; //每页显示行数
62 private $limit; //SQL语句使用limit从句,限制获取记录个数
63 private $uri; //自动获取url的请求地址
64 private $pageNum; //总页数
65 private $page; //当前页
66 private $config = array(
67 'head' => "条记录",
68 'prev' => "上一页",
69 'next' => "下一页",
70 'first'=> "首页",
71 'last' => "末页"
72 );
73 //在分页信息中显示内容,可以自己通过set()方法设置
74 private $listNum = 3; //默认分页列表显示的个数
75
76 /**
77 构造方法,可以设置分页类的属性
78 @param int $total 计算分页的总记录数
79 @param int $listRows 可选的,设置每页需要显示的记录数,默认为25条
80 @param mixed $query 可选的,为向目标页面传递参数,可以是数组,也可以是查询字符串格式
81 @param bool $ord 可选的,默认值为true, 页面从第一页开始显示,false则为最后一页
82 */
83 public function __construct($total, $listRows=3, $query="", $ord=true){
84 $this->total = $total;
85 $this->listRows = $listRows;
86 $this->uri = $this->getUri($query);
87 $this->pageNum = ceil($this->total / $this->listRows);
88 /*以下判断用来设置当前面*/
89 if(!empty($_GET["page"])) {
90 $page = $_GET["page"];
91 }else{
92 if($ord)
93 $page = 1;
94 else
95 $page = $this->pageNum;
96 }
97
98 if($total > 0) {
99 if(preg_match('/\D/', $page) ){
100 $this->page = 1;
101 }else{
102 $this->page = $page;
103 }
104 }else{
105 $this->page = 0;
106 }
107
108 $this->limit = "LIMIT ".$this->setLimit();
109 }
110
111 /**
112 用于设置显示分页的信息,可以进行连贯操作
113 @param string $param 是成员属性数组config的下标
114 @param string $value 用于设置config下标对应的元素值
115 @return object 返回本对象自己$this, 用于连惯操作
116 */
117 function set($param, $value){
118 if(array_key_exists($param, $this->config)){
119 $this->config[$param] = $value;
120 }
121 return $this;
122 }
123
124 /* 不是直接去调用,通过该方法,可以使用在对象外部直接获取私有成员属性limit和page的值 */
125 function __get($args){
126 if($args == "limit" || $args == "page")
127 return $this->$args;
128 else
129 return null;
130 }
131
132 /**
133 按指定的格式输出分页
134 @param int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构
135 @return string 分页信息内容
136 */
137 function fpage(){
138 $arr = func_get_args();
139
140 $html[0] = "<span class='p1'> 共<b> {$this->total} </b>{$this->config["head"]} </span>";
141 $html[1] = " 本页 <b>".$this->disnum()."</b> 条 ";
142 $html[2] = " 本页从 <b>{$this->start()}-{$this->end()}</b> 条 ";
143 $html[3] = " <b>{$this->page}/{$this->pageNum}</b>页 ";
144 $html[4] = $this->firstprev();
145 $html[5] = $this->pageList();
146 $html[6] = $this->nextlast();
147 $html[7] = $this->goPage();
148
149 $fpage = '<div style="font:12px \'\5B8B\4F53\',san-serif;">';
150 if(count($arr) < 1)
151 $arr = array(0,1,2,3,4,5,6,7);
152
153 for($i = 0; $i < count($arr); $i++)
154 $fpage .= $html[$arr[$i]];
155
156 $fpage .= '</div>';
157 return $fpage;
158 }
159
160 /* 在对象内部使用的私有方法,*/
161 private function setLimit(){
162 if($this->page > 0)
163 return ($this->page-1)*$this->listRows.", {$this->listRows}";
164 else
165 return 0;
166 }
167
168 /* 在对象内部使用的私有方法,用于自动获取访问的当前URL */
169 private function getUri($query){
170 $request_uri = $_SERVER["REQUEST_URI"];
171 $url = strstr($request_uri,'?') ? $request_uri : $request_uri.'?';
172
173 if(is_array($query))
174 $url .= http_build_query($query);
175 else if($query != "")
176 $url .= "&".trim($query, "?&");
177
178 $arr = parse_url($url);
179
180 if(isset($arr["query"])){
181 parse_str($arr["query"], $arrs);
182 unset($arrs["page"]);
183 $url = $arr["path"].'?'.http_build_query($arrs);
184 }
185
186 if(strstr($url, '?')) {
187 if(substr($url, -1)!='?')
188 $url = $url.'&';
189 }else{
190 $url = $url.'?';
191 }
192
193 return $url;
194 }
195
196 /* 在对象内部使用的私有方法,用于获取当前页开始的记录数 */
197 private function start(){
198 if($this->total == 0)
199 return 0;
200 else
201 return ($this->page-1) * $this->listRows+1;
202 }
203
204 /* 在对象内部使用的私有方法,用于获取当前页结束的记录数 */
205 private function end(){
206 return min($this->page * $this->listRows, $this->total);
207 }
208
209 /* 在对象内部使用的私有方法,用于获取上一页和首页的操作信息 */
210 private function firstprev(){
211 if($this->page > 1) {
212 $str = " <a href='{$this->uri}page=1'>{$this->config["first"]}</a> ";
213 $str .= "<a href='{$this->uri}page=".($this->page-1)."'>{$this->config["prev"]}</a> ";
214 return $str;
215 }
216
217 }
218
219 /* 在对象内部使用的私有方法,用于获取页数列表信息 */
220 private function pageList(){
221 $linkPage = " <b>";
222
223 $inum = floor($this->listNum/2);
224 /*当前页前面的列表 */
225 for($i = $inum; $i >= 1; $i--){
226 $page = $this->page-$i;
227
228 if($page >= 1)
229 $linkPage .= "<a href='{$this->uri}page={$page}'>{$page}</a> ";
230 }
231 /*当前页的信息 */
232 if($this->pageNum > 1)
233 $linkPage .= "<span style='padding:1px 2px;background:#BBB;color:white'>{$this->page}</span> ";
234
235 /*当前页后面的列表 */
236 for($i=1; $i <= $inum; $i++){
237 $page = $this->page+$i;
238 if($page <= $this->pageNum)
239 $linkPage .= "<a href='{$this->uri}page={$page}'>{$page}</a> ";
240 else
241 break;
242 }
243 $linkPage .= '</b>';
244 return $linkPage;
245 }
246
247 /* 在对象内部使用的私有方法,获取下一页和尾页的操作信息 */
248 private function nextlast(){
249 if($this->page != $this->pageNum) {
250 $str = " <a href='{$this->uri}page=".($this->page+1)."'>{$this->config["next"]}</a> ";
251 $str .= " <a href='{$this->uri}page=".($this->pageNum)."'>{$this->config["last"]}</a> ";
252 return $str;
253 }
254 }
255
256 /* 在对象内部使用的私有方法,用于显示和处理表单跳转页面 */
257 private function goPage(){
258 if($this->pageNum > 1) {
259 return ' <input style="width:20px;height:17px !important;height:18px;border:1px solid #CCCCCC;" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>'.$this->pageNum.')?'.$this->pageNum.':this.value;location=\''.$this->uri.'page=\'+page+\'\'}" value="'.$this->page.'"><input style="cursor:pointer;width:25px;height:18px;border:1px solid #CCCCCC;" type="button" value="GO" onclick="javascript:var page=(this.previousSibling.value>'.$this->pageNum.')?'.$this->pageNum.':this.previousSibling.value;location=\''.$this->uri.'page=\'+page+\'\'"> ';
260 }
261 }
262
263 /* 在对象内部使用的私有方法,用于获取本页显示的记录条数 */
264 private function disnum(){
265 if($this->total > 0){
266 return $this->end()-$this->start()+1;
267 }else{
268 return 0;
269 }
270 }
271 }
272
273
274
275

浙江省首例禽流感病人死亡 未现动物禽流感疫情-2016-04-08
中新社杭州三月八日电(记者 袁胤)据浙江省卫生厅通报,浙江省首例禽流感病人有某因病情恶化,经全力抢救无效,于三月六日晚死亡。到目前为止,浙江省没有发现动物禽流感疫情,也没有出现新的人禽流感疑似病例。 据介绍,患者有某,女,九岁,学生,浙江省安吉县人,二月十日发病,临床有发热、肺炎表现,经当地治疗无好转,于二月二十日晚转入杭州治疗,二十五日被确诊为人感染高致病性禽流感病例。流行病学调查表明,患者有某发病前曾两次随家人到安徽省广德县走访亲戚,其亲戚家在此期间曾出现病死鸡现象
详情
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步