長(zhǎng)文章 自動(dòng)/手動(dòng) 分頁類
Jun 08, 2016 pm 05:32 PM
/*
?*?長(zhǎng)文章分頁類
?*?@package?cutpage
?*?@author??yytcpt(無影)
?*?@version?2008-03-27
?*?@copyrigth?http://www.d5s.cn/
?*/
?class cutpage{
??var $pagestr;??//被切分的內(nèi)容
??var $pagearr;??//被切分文字的數(shù)組格式
??var $sum_word;??//總字?jǐn)?shù)(UTF-8格式的中文字符也包括)
??var $sum_page;??//總頁數(shù)
??var $page_word;??//一頁多少字
??var $cut_tag;??//自動(dòng)分頁符
??var $cut_custom;?//手動(dòng)分頁符
??var $ipage;???//當(dāng)前切分的頁數(shù),第幾頁
??var $url;
??function __construct(){
???$this->page_word = 1000;
???$this->cut_tag = array("", "", "
", "”。", "。", ".", "!", "……", "?", ",");
???$this->cut_custom = "{nextpage}";
???$tmp_page = intval(trim($_GET["ipage"]));
???$this->ipage = $tmp_page>1?$tmp_page:1;
??}
??//統(tǒng)計(jì)總字?jǐn)?shù)
??function get_page_word(){
???$this->sum_word = $this->strlen_utf8($this->pagestr);
???return $this->sum_word;
??}
??/*?統(tǒng)計(jì)UTF-8編碼的字符長(zhǎng)度
?? *?一個(gè)中文,一個(gè)英文都為一個(gè)字
?? */
??function strlen_utf8($str){
???? $i = 0;
???? $count = 0;
???? $len = strlen ($str);
???? while ($i ????? $chr = ord ($str[$i]);
????? $count++;
????? $i++;
????? if ($i >= $len)
?????? break;
????? if ($chr & 0x80){
?????? $chr ?????? while ($chr & 0x80) {
??????? $i++;
??????? $chr ?????? }
????? }
???? }
???? return $count;
??}
??//設(shè)置自動(dòng)分頁符號(hào)
??function set_cut_tag($tag_arr=array()){
???$this->cut_tag = $tag_arr;
??}
??//設(shè)置手動(dòng)分頁符
??function set_cut_custom($cut_str){
???$this->cut_custom = $cut_str;
??}
??function show_cpage($ipage=0){
???$this->cut_str();
???$ipage = $ipage ? $ipage:$this->ipage;
???return $this->pagearr[$ipage];
??}
??function cut_str(){
???$str_len_word = strlen($this->pagestr);??//獲取使用strlen得到的字符總數(shù)
???$i = 0;
???if ($str_len_wordpage_word){?//如果總字?jǐn)?shù)小于一頁顯示字?jǐn)?shù)
????$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個(gè)文字?cutStr為func.global中的函數(shù)
?????foreach ($this->cut_tag as $v){
??????$cut_start = strrpos($str_first, $v);??//逆向查找第一個(gè)分頁符的位置
??????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){?//如果超過總字?jǐn)?shù)
??????$page_arr[$i++] = substr($this->pagestr, $cut_start, $this->page_word);
?????}else{
??????while (($cut_start+$this->page_word) ???????foreach ($this->cut_tag as $v){
????????$str_tmp = substr($this->pagestr, $cut_start, $this->page_word);??//取第cut_start個(gè)字后的page_word個(gè)字符
????????$cut_tmp = strrpos($str_tmp, $v);??//找出從第cut_start個(gè)字之后,page_word個(gè)字之間,逆向查找第一個(gè)分頁符的位置
????????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);??//總頁數(shù)
???$this->pagearr = $page_arr;
??}
??//顯示上一條,下一條
??function show_prv_next(){
???$this->set_url();
???if ($this->sum_page>1 and $this->ipagesum_page){
????$str = "下一頁 ";
???}
???if ($this->sum_page>1 and $this->ipage>1){
????$str.= "上一頁";
???}
???return $str;
??}
??function show_page_select(){
???if ($this->sum_page>1){
????$str = " ? ";
???}
???return $str;
??}
??function show_page_select_wap(){
???if ($this->sum_page>1){
????$str = "";
???}
???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"]."?".$str;
??}
?}
?>
?
如果您加了新功能,或者是有改進(jìn),請(qǐng)與大家一起分享。
長(zhǎng)文章分頁類,可以手工指定分頁符,也可以讓程序自動(dòng)分頁。
實(shí)例代碼:請(qǐng)以UTF-8的文件編碼進(jìn)行測(cè)試。
代碼:
<font face="幼圓"><?php <br />
????include('cutpage.php');<br>
????header("content-type:text/html;charset=utf-8");//設(shè)置頁面編碼<br>
????//自定義的長(zhǎng)文章字符串,可以包含 html 代碼,若字符串中有手動(dòng)分頁符 {nextpage} 則優(yōu)先按手動(dòng)分頁符進(jìn)行分頁<br>
????$content = file_get_contents('text.txt');<br>
????$ipage = $_GET["ipage"]? intval($_GET["ipage"]):1;<br>
????$CP = new cutpage();<br>
????$CP->pagestr = $content;<br>
????$CP->cut_str();<br>
????echo $CP->pagearr[$ipage-1]."<hr>";<br>
????echo $CP->show_prv_next();<br>
?></font>

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ログイン畫面に「組織から PIN の変更を求められています」というメッセージが表示されます。これは、個(gè)人のデバイスを制御できる組織ベースのアカウント設(shè)定を使用しているコンピューターで PIN の有効期限の制限に達(dá)した場(chǎng)合に発生します。ただし、個(gè)人アカウントを使用して Windows をセットアップした場(chǎng)合、エラー メッセージは表示されないのが理想的です。常にそうとは限りませんが。エラーが発生したほとんどのユーザーは、個(gè)人アカウントを使用して報(bào)告します。私の組織が Windows 11 で PIN を変更するように要求するのはなぜですか?アカウントが組織に関連付けられている可能性があるため、主なアプローチはこれを確認(rèn)することです。ドメイン管理者に問い合わせると解決できます。さらに、ローカル ポリシー設(shè)定が間違っていたり、レジストリ キーが間違っていたりすると、エラーが発生する可能性があります。今すぐ

Windows 11 では、新鮮でエレガントなデザインが前面に押し出されており、最新のインターフェイスにより、ウィンドウの境界線などの細(xì)部をカスタマイズして変更することができます。このガイドでは、Windows オペレーティング システムで自分のスタイルを反映した環(huán)境を作成するのに役立つ手順について説明します。ウィンドウの境界線の設(shè)定を変更するにはどうすればよいですか? + を押して設(shè)定アプリを開きます。 Windows [個(gè)人用設(shè)定] に移動(dòng)し、[色の設(shè)定] をクリックします。ウィンドウの境界線の色の変更設(shè)定ウィンドウ 11" width="643" height="500" > [タイトル バーとウィンドウの境界線にアクセント カラーを表示する] オプションを見つけて、その橫にあるスイッチを切り替えます。 [スタート] メニューとタスク バーにアクセント カラーを表示するにはスタート メニューとタスク バーにテーマの色を表示するには、[スタート メニューとタスク バーにテーマを表示] をオンにします。

デフォルトでは、Windows 11 のタイトル バーの色は、選択したダーク/ライト テーマによって異なります。ただし、任意の色に変更できます。このガイドでは、デスクトップ エクスペリエンスを変更し、視覚的に魅力的なものにするためにカスタマイズする 3 つの方法について、段階的な手順を説明します。アクティブなウィンドウと非アクティブなウィンドウのタイトル バーの色を変更することはできますか?はい、設(shè)定アプリを使用してアクティブなウィンドウのタイトル バーの色を変更したり、レジストリ エディターを使用して非アクティブなウィンドウのタイトル バーの色を変更したりできます。これらの手順を?qū)W習(xí)するには、次のセクションに進(jìn)んでください。 Windows 11でタイトルバーの色を変更するにはどうすればよいですか? 1. 設(shè)定アプリを使用して + を押して設(shè)定ウィンドウを開きます。 Windows「?jìng)€(gè)人用設(shè)定」に進(jìn)み、

タスクバーのサムネイルは楽しい場(chǎng)合もありますが、気が散ったり煩わしい場(chǎng)合もあります。この領(lǐng)域にマウスを移動(dòng)する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠點(diǎn)は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場(chǎng)合は、それを無効にする方法を説明します。ただし、ハードウェアの仕様が対応可能で、プレビューが気に入った場(chǎng)合は、有効にすることができます。 Windows 11でタスクバーのサムネイルプレビューを有効にする方法は? 1. 設(shè)定アプリを使用してキーをタップし、[設(shè)定] をクリックします。 Windows では、「システム」をクリックし、「バージョン情報(bào)」を選択します。 「システムの詳細(xì)設(shè)定」をクリックします。 [詳細(xì)設(shè)定] タブに移動(dòng)し、[パフォーマンス] の下の [設(shè)定] を選択します。 「視覚効果」を選択します

Windows インストーラー ページに「問題が発生しました」というメッセージとともに「OOBELANGUAGE」というメッセージが表示されますか?このようなエラーが原因で Windows のインストールが停止することがあります。 OOBE とは、すぐに使えるエクスペリエンスを意味します。エラー メッセージが示すように、これは OOBE 言語の選択に関連する問題です。心配する必要はありません。OOBE 畫面自體から気の利いたレジストリ編集を行うことで、この問題を解決できます。クイックフィックス – 1. OOBE アプリの下部にある [再試行] ボタンをクリックします。これにより、問題が発生することなくプロセスが続行されます。 2. 電源ボタンを使用してシステムを強(qiáng)制的にシャットダウンします。システムの再起動(dòng)後、OOBE が続行されます。 3. システムをインターネットから切斷します。 OOBE のすべての側(cè)面をオフライン モードで完了する

畫面の明るさは、最新のコンピューティング デバイスを使用する上で不可欠な部分であり、特に長(zhǎng)時(shí)間畫面を見る場(chǎng)合には重要です。目の疲れを軽減し、可読性を向上させ、コンテンツを簡(jiǎn)単かつ効率的に表示するのに役立ちます。ただし、設(shè)定によっては、特に新しい UI が変更された Windows 11 では、明るさの管理が難しい場(chǎng)合があります。明るさの調(diào)整に問題がある場(chǎng)合は、Windows 11 で明るさを管理するすべての方法を次に示します。 Windows 11で明るさを変更する方法【10の方法を解説】 シングルモニターユーザーは、次の方法でWindows 11の明るさを調(diào)整できます。これには、ラップトップだけでなく、単一のモニターを使用するデスクトップ システムも含まれます。はじめましょう。方法 1: アクション センターを使用する アクション センターにアクセスできる

Windows 11 のディスプレイ スケーリングに関しては、好みが人それぞれ異なります。大きなアイコンを好む人もいれば、小さなアイコンを好む人もいます。ただし、適切なスケーリングが重要であることには誰もが同意します。フォントのスケーリングが不十分であったり、畫像が過度にスケーリングされたりすると、作業(yè)中の生産性が大幅に低下する可能性があるため、システムの機(jī)能を最大限に活用するためにカスタマイズする方法を知る必要があります。カスタム ズームの利點(diǎn): これは、畫面上のテキストを読むのが難しい人にとって便利な機(jī)能です。一度に畫面上でより多くの情報(bào)を確認(rèn)できるようになります。特定のモニターおよびアプリケーションにのみ適用するカスタム拡張プロファイルを作成できます。ローエンド ハードウェアのパフォーマンスの向上に役立ちます。畫面上の內(nèi)容をより詳細(xì)に制御できるようになります。 Windows 11の使用方法

Windows のライセンス認(rèn)証プロセスが突然切り替わり、このエラー コード 0xc004f069 を含むエラー メッセージが表示されることがあります。ライセンス認(rèn)証プロセスはオンラインですが、Windows Server を?qū)g行している一部の古いシステムではこの問題が発生する可能性があります。これらの初期チェックを?qū)g行し、システムのアクティブ化に役に立たない場(chǎng)合は、問題を解決するための主要な解決策に進(jìn)んでください。回避策 – エラー メッセージとアクティベーション ウィンドウを閉じます。次に、コンピュータを再起動(dòng)します。 Windows ライセンス認(rèn)証プロセスを最初から再試行します。解決策 1 – ターミナルからアクティブ化する cmd ターミナルから Windows Server Edition システムをアクティブ化します。ステージ – 1 Windows Server のバージョンを確認(rèn)する 使用している W の種類を確認(rèn)する必要があります
