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.
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.
Bài liên quan
Còn tự code thì khi đó bạn đủ trình độ, và việc phân trang ko là vấn đề!
Mình đang cần đáp án cho vấn đề ở trên.
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 .
@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.
Đ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
// 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 :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>