本文实例为大家分享了PHP实现文件内容操作的分页类,强调一下只针对文件的操作,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<?php class StrPage { private $current ; //当前页 private $file ; //操作文件 private $totalPage ; //总的页数 private $url ; //传递的参数 private $pageLen ; //每页显示的长度 function __construct( $file , $len = 200 ){ $this ->file = file_get_contents ( $file ); $this ->pageLen = $len ; $this ->current = isset( $_GET [ 'page' ])? $_GET [ 'page' ]:1; $this ->totalPage = $this ->getTotalPage(); $this ->url = $this ->getUrl(); } //获取到这个文件总的长度 private function getTotalPage(){ return ceil ( strlen ( $this ->file)/ $this ->pageLen); } //获取当前传递的参数,保留参数,page参数动态变化 private function getUrl(){ $url = parse_url ( $_SERVER [ 'REQUEST_URI' ]); parse_str ( $url [ 'query' ], $queryArr ); unset( $queryArr [ 'page' ]); $queryStr = http_build_query( $queryArr ); return $url [ 'path' ]. '?' . $queryStr . '&page=' ; } //首页 private function first(){ if ( $this ->current>1) return "<a href='" . $this ->url. "1'>首页</a>" ; } //上一页 private function pre(){ if ( $this ->current > 1 ) return "<a href='" . $this ->url.( $this ->current-1). "'>上一页</a>" ; } //下一页 private function next(){ if ( $this ->current < $this ->totalPage) return "<a href='" . $this ->url.( $this ->current+1). "'>下一页</a>" ; } //最后一页 private function end (){ if ( $this ->current < $this ->totalPage ) return "<a href='" . $this ->url. $this ->totalPage. "'>末页</a>" ; } public function pageList(){ $pageListStr = '' ; for ( $i =1; $i <= $this ->totalPage; $i ++){ if ( $i == $this ->current){ $pageListStr .= "<span style='font-size:20px;color:#f00'>" . $i . "</span> " ; } else { $pageListStr .= "<a href='" . $this ->url. $i . "'>" . $i . " </a>" ; } } return $pageListStr ; } public function pageStyle( $style =1){ switch ( $style ){ case 1: return "共有" . $this ->totalPage. "页" . $this ->first(). $this ->pre(). $this ->pageList(). $this ->next(). $this -> end (); break ; case 2; return $this ->pageList(); break ; } } public function getContents(){ $prePageLen = strlen ( $this ->subStrs( $this ->current-1)); $currentPageLen = strlen ( $this ->subStrs( $this ->current)); return substr ( $this ->file, $prePageLen , $currentPageLen - $prePageLen ); } public function subStrs( $page ){ $string = '' ; $len = $page * $this ->pageLen; for ( $i =0; $i < $len ; $i ++ ){ if ( ord( substr ( $this ->file, $i ,1))>0xa0 ){ $string .= substr ( $this ->file, $i ,3); $i = $i +2; } else { $string .= substr ( $this ->file, $i ,1); } } return $string ; } } |
以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。