Table of Contents
PHP实现长文章分页实例代码(附源码),
您可能感兴趣的文章:
Home php教程 php手册 PHP实现长文章分页实例代码(附源码),

PHP实现长文章分页实例代码(附源码),

Jun 13, 2016 am 08:46 AM
php Pagination

PHP实现长文章分页实例代码(附源码),

当文章内容比较长,为了更好的满足用户体验度,我们将文章内容分页显示处理,而一般分页处理是在后台发布文章的时候就将提交的内容生成多个分页后的静态文件。通过本文结合实例采用php动态将长文章内容进行分页处理。

查看效果演示     源码下载

如何分页

手动分页:一般在编辑内容时加入特殊分页标记,如{pages},提交后,PHP程序会根据分页符处理分页,生成不同的静态页面。这种分页方法分页准确,但是需要人工手动添加分页符,工作量大。

自动分页:PHP程序会根据设置好的分页符将内容进行分页,然后生成不同的静态页面。该方法效率高,对处理不同的html代码标签要求高。

前端JS分页:使用Javascript将长文章内容截取分段,根据请求展示不同的分段内容,达到分页效果。这种方法一次将内容读取,由前端js处理分页,体验好。

本文实例代码讲解的是采用PHP将长文章内容分页,可以自动和手动分页。至于生成静态html页面不在本文讲解范围内,后面我们会专门讲解生成静态方面的文章介绍。

分页类

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

<&#63;php

/*

* 长文章分页类

*/

class cutpage{

private $pagestr; //被切分的内容

private $pagearr; //被切分文字的数组格式

private $sum_word; //总字数(UTF-8格式的中文字符也包括)

private $sum_page; //总页数

private $page_word; //一页多少字

private $cut_tag; //自动分页符

private $cut_custom; //手动分页符

private $ipage; //当前切分的页数,第几页

private $url;

function __construct($pagestr,$page_word=1000){

$this->page_word = $page_word;

$this->cut_tag = array("</table>", "</div>", "</p>", "<br/>", "”。", "。", ".", "!", "……", "?", ",");

$this->cut_custom = "{nextpage}";

$tmp_page = intval(trim($_GET["ipage"]));

$this->ipage = $tmp_page>1&#63;$tmp_page:1;

$this->pagestr = $pagestr;

}

function cut_str(){

$str_len_word = strlen($this->pagestr); //获取使用strlen得到的字符总数

$i = 0;

if ($str_len_word<=$this->page_word){ //如果总字数小于一页显示字数

$page_arr[$i] = $this->pagestr;

}else{

if (strpos($this->pagestr, $this->cut_custom)){

$page_arr = explode($this->cut_custom, $this->pagestr);

}else{

$str_first = substr($this->pagestr, 0, $this->page_word); //0-page_word个文字 cutStr为func.global中的函数

foreach ($this->cut_tag as $v){

$cut_start = strrpos($str_first, $v); //逆向查找第一个分页符的位置

if ($cut_start){

$page_arr[$i++] = substr($this->pagestr, 0, $cut_start).$v;

$cut_start = $cut_start + strlen($v);

break;

}

}

if (($cut_start+$this->page_word)>=$str_len_word){ //如果超过总字数

$page_arr[$i++] = substr($this->pagestr, $cut_start, $this->page_word);

}else{

while (($cut_start+$this->page_word)<$str_len_word){

foreach ($this->cut_tag as $v){

$str_tmp = substr($this->pagestr, $cut_start, $this->page_word); //取第cut_start个字后的page_word个字符

$cut_tmp = strrpos($str_tmp, $v); //找出从第cut_start个字之后,page_word个字之间,逆向查找第一个分页符的位置

if ($cut_tmp){

$page_arr[$i++] = substr($str_tmp, 0, $cut_tmp).$v;

$cut_start = $cut_start + $cut_tmp + strlen($v);

break;

}

}

}

if (($cut_start+$this->page_word)>$str_len_word){

$page_arr[$i++] = substr($this->pagestr, $cut_start, $this->page_word);

}

}

}

}

$this->sum_page = count($page_arr); //总页数

$this->pagearr = $page_arr;

return $page_arr;

}

//显示上一条,下一条

function pagenav(){

$this->set_url();

$str = '';

//$str .= $this->ipage.'/'.$this->sum_page;

for($i=1;$i<=$this->sum_page;$i++){

if($i==$this->ipage) {

$str.= "<a href='#' class='cur'>".$i."</a> ";

}else{

$str.= "<a href='".$this->url.$i."'>".$i."</a> ";

}

}

return $str;

}

function set_url(){

parse_str($_SERVER["QUERY_STRING"], $arr_url);

unset($arr_url["ipage"]);

if (empty($arr_url)){

$str = "ipage=";

}else{

$str = http_build_query($arr_url)."&ipage=";

}

$this->url = "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."&#63;".$str;

}

}

&#63;>

Copy after login

以上cutpage类可以非常好的处理内容分页,能处理不同html标签给分页带来的麻烦。如果内容设置了分页符{nextpage},则会优先自动将内容按分页符分页。

调用分页类

我们假设读取了文件text.txt的文章内容,实际项目中应该是表单提交长内容或者读取数据库相关表的内容。然后实例化分页类,然后根据当前页调用对应分页的内容并输出,以及输出分页条。

1

2

3

4

5

6

7

8

<&#63;php

$content = file_get_contents('text.txt');

$ipage = $_GET["ipage"]&#63; intval($_GET["ipage"]):1;

$CP = new cutpage($content);

$page = $CP->cut_str();

echo $page[$ipage-1];

echo $CP->pagenav();

&#63;>

Copy after login

您可能感兴趣的文章:

  • PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
  • php文章内容分页并生成相应的htm静态页面代码
  • PHP 文本文章分页代码 按标记或长度(不涉及数据库)
  • php中长文章分页显示实现代码
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles