10/10/2018, 10:11

Xi hỏi các bạn về phân trang cho 1 văn bản.

Mình tính làm 1 site truyện online. Nhưng chưa biết phải làm như thế nào để phân trang cho văn bản.
Chẳng hạn như post 1 bài viết quá dài. khi khách vào đọc sẽ thấy chán vì cảm giác truyện quá dài, lại kéo xuống dưới qua sâu có thể làm nặng trang web.

Có cách nào để khi mình post 1 bài viết khoảng 7000 từ thì cứ 1000 từ nó sẽ cắt và cho qua trang thứ 2 không. Khi người xem đọc hết trang 1 sẽ click vào trang tiếp theo để xem.

Hoặc bạn nào có ví dụ về source nào thì cho mình học hỏi với.
olbk viết 12:26 ngày 10/10/2018
Nếu dùng source nguồn có sẵn thì đều có chức năng này, nhưng vẫn tự tìm chỗ để phân trang.
Còn tự code thì khi đó bạn đủ trình độ, và việc phân trang ko là vấn đề!
tomraider viết 12:15 ngày 10/10/2018
Câu trả lời của bạn không có đáp án.
Mình đang cần đáp án cho vấn đề ở trên.
vzic viết 12:16 ngày 10/10/2018
Dễ mà bạn. Khi post bạn đếm xem tổng có bao nhiêu ký tự. Rồi dùng mid và pos để lấy các đoạn ký tự trên / 1 trang đã định ra rồi insert tương ứng với 1 record mới. Mỗi 1 record là 1 trang.
tomraider viết 12:14 ngày 10/10/2018
Mình thấy không đơn giản chút nào. Tại mình không biết nên hỏi các bạn. Bạn có thể biểu diễn 1 chuỗi hành động ở đây cho mình xem qua, học hỏi không?
shrimp2t viết 12:16 ngày 10/10/2018
Oh sorry nha !post nhầm
Mình có cách thế này bạn xem có ổn ko nha:

1-> Bạn xem mỗi trang bạn định trình bày bao nhiêu kí tự ??
2-> Tính toán xem cái bài hay cái truyện đó sẽ dc phân ra làm bao nhiêu trang.
số trang =tỏng ký tụ của truyện/số ký tự hiển thị (có tính toán nếu dư ).
3-> Trong phần trình bày ra(có giao diện phân trang Vd: 1 2 3 next.. gì đấy). Khi ngươi ta kick vào link hay button gì đấy. Bạn dung 1 biến lấy trang thứ x mà ngươì ta muân xem. Khi đã lấy dc thông tin n` ta cần xem trang thứ x rồi=>tính toán số ký tụ bắt đầu và kết thúc =>cắt chuỗi =>in ra .
thuyduongcd viết 12:20 ngày 10/10/2018
Người ta muốn phân trang văn bản, ông này bê cái phân trang mẫu tin làm gì.

@tomraider: Tính làm thì cứ làm xong đi tự nhiên tới lúc đó sẽ có cách. Bởi vì một người có đủ khả năng viết 1 site truyện online thì chuyện hạn chế số ký tự xuất ra này chỉ như trò chơi trẻ con mà thôi.
shrimp2t viết 12:27 ngày 10/10/2018
Đây là code = PHP tui còn hơi cùi các bác xem có được không nhá
Đoạn code này sẽ cắt lấy 1 chuỗi có số kí không lớn hơn số ký tự đã cho trước. nên sẽ không cắt đi nội dung của từ nào đấy trong bài.
(viết vội nên tổ chứ hàm chua được tốt)
PHP Code:
<?php
// văn bản cần phân trang
$vanban='
Ông Nguyễn Văn Công - Chánh văn phòng Bộ GTVT cho biết, để đảm bảo tính 
bền vững kết cấu và khai thác mặt cầu về lâu dài, Bộ GTVT đã chỉ đạo Cục
Đường bộ Việt Nam, Ban QLDA 2 chỉ đạo Tư vấn, nhà thầu khẩn trương tập 
trung nhân lực, thiết bị sửa chữa các vị trí bị hư hỏng trong thời gian 
nhanh nhất, tiếp tục xẻ rãnh thoát nước dọc và ngang tại các vị trí trên cầu để thoát
nước triệt để từ mặt bê tông nhựa ra máng thu nước. Các công việc trên phải xong trước 
ngày 31/3.
Ngoài ra, Vụ KHCN chủ trì, phối 
hợp với Cục Đường bộ Việt Nam, Cục Quản lý xây dựng &
Chất lượng công trình giao thông, Ban QLDA 2, Viện Khoa học
Công nghệ GTVT, nhà thầu rà soát lại 

toàn bộ hồ sơ thiết kế, hồ sơ 
thi công, công nghệ thi công, đánh giá chất lượng thi công lớp mặt bê tông 
nhựa để tìm ra nguyên nhân và đề xuất phương án khắc phục triệt để đảm bảo 
tính bền vững của công trình trong quá trình khai thác.

Thông tin từ Bộ GTVT, Dự án sửa chữa mặt cầu Thăng Long được Bộ GTVT phê duyệt đầu tư 
tại Quyết định số 1723/QĐ-BGTVT ngày 16/6/2009 và giao cho Cục Đường bộ Việt Nam làm Chủ 
đầu tư. Dự án gồm 3 hạng mục chính: sửa chữa mặt cầu Thăng Long, thay thế khe co giãn và sửa chữa đường 
đảm bảo giao thông 2 bên cánh gà tầng 1.
'
;

$max_char =200// ki tự tối đa

function split_words($string$max 1)
{
    
$words preg_split('/\s/'$string);
    
$lines = array();
    
$line '';
   
    foreach (
$words as $k => $word) {
        
$length strlen($line ' ' $word);
        if (
$length <= $max) {
            
$line .= ' ' $word;
        } else if (
$length $max) {
            if (!empty(
$line)) $lines***91;***93; = trim($line);
            
$line $word;
        } else {
            
$lines***91;***93; = trim($line) . ' ' $word;
            
$line '';
        }
    }
    
$lines***91;***93; = ($line trim($line)) ? $line $word;
    return 
$lines;
}

$page=(isset($_GET***91;'page'***93;)) ?(int)$_GET***91;'page'***93; :1;
$page=($page>=1)? $page-=:1;

function 
split_string($string,$page=0){
    global 
$max_char;
    
$infor=split_words($string,$max_char);
    
$return***91;'numpage'***93;=count($infor);
    
$return***91;'content'***93;=$infor***91;$page***93;;
    return 
$return;
}

function 
paging($numpage,$page){
    for(
$i=0;$i<$numpage;$i++){
        if(
$i==$page){
            echo 
'<a href="?page='.($i+1).'" id="page">'.($i+1).'</a>';
        }else{
            echo 
'<a href="?page='.($i+1).'">'.($i+1).'</a>';
        }
    }
}
?>

<!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" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="author" content="shrimp2t" />

    <title>phan trang van ban</title>
    <style>
    body{
        background: #939393;
    }
    #main{
        width: 600px;
        margin: 0 auto;
        padding:30px;
        background: #FFF;
    }
    .content{
        padding: 20px;
    }
    .paging{
        margin-top: 20px;
    }
    .paging a{
        margin: 5px;
    }
    a#page{
        color: green;
        font-weight: bold;
    }
    </style>
</head>

<body>
<div id="main">
    <div class="content">
    <?php 
    $content
=split_string($vanban,$page);
    echo 
$content***91;'content'***93;;
    
?>
    </div>
    <div class="paging">
    <?php paging($content***91;'numpage'***93;,$page); ?>
    </div>
    
</div>
</body>
</html>
Bài liên quan
0