検索
ホームページバックエンド開発PHPチュートリアルスーパー ページング クラス 2.0 がリリース、カスタム スタイル、デフォルトの 4 つの表示モードをサポート_PHP チュートリアル

超強力なページング クラス 2.0 がリリースされ、カスタム スタイルをサポートし、4 つのデフォルト表示モードがあります


フォーラムで Baidu ページング クラスを求めている人を見かけたので、数週間前のページング クラスを投稿しました。
2.0は1.0に対して以下のように修正されました:
1. PHP4とPHP5をサポート
2. ajaxページングの機能を追加
3. プログラム全体の構造を最適化
4. カスタムスタイルの機能を追加

コードは次のとおりです:

コードをコピーします コードは次のとおりです:

/**
* ファイル名: ext_page.class.php
* @package:phpbean
* @author :feifengxlq
* @copyright :Copyright 2006 feifengxlq
* @license:version 2.0
* @create:2006-5-31
* @modify:2006-6-1
* @modify: feifengxlq 2006-11-4
* 説明: 超強力なページング クラス、4 つのページング モード、デフォルトのページング スタイルは Baidu や Google に似ています。
* 2.0 の追加機能: カスタム スタイルのサポート、カスタム スタイル、PHP4 と PHP5 の両方のサポート、
* 詳細については、[url=http://www.phpobject.net/blog/read.php]http://www.phpobject.net/blog/read.php にアクセスしてください。 www.phpobject.net/blog/read.php[/url]?
* 例:
* 4 つのページング モード:
require_once('../libs/classes/page.class.php'); new page(array('total'=>1000,'perpage'=>20));
echo 'mode:1
'.$page->show();
echo '
モード:2
'.$page->show(2);
echo '
mode:3
'.$page->show(3); mode:4
'.$page->show(4);
AJAX をオンにする:
$ajaxpage=new page(array('total'=>1000,'perpage'=>20, 'ajax) '=>'ajax_page','page_name'=>'test'));
echo 'mode:1
'.$ajaxpage->show();
継承されたカスタム ページング表示モードを採用する :
デモ:http://www.phpobject.net/ブログ
*/
class page
{
/** 
* 設定、公開
  */
var $page_name="PB_page";//URL ページを制御するために使用されるページ タグ。たとえば、xxx.php?PB_page=2 の PB_page
var $next_page='>';//次のページ
var $pre_page=' var $first_page='First' ;/ /Homepage
var $last_page='Last';//最後のページ
var $pre_bar=' var $next_bar='>>';//次のページング バー
var $format_left='[';
var $format_right=']';
var $is_ajax=false;//AJAX ページング モードがサポートされているかどうか

/** 
* プライベート
*
  */
var $pagebarnum= 10; //レコードストリップの数を制御します。 
var $totalpage=0;//总页数
var $ajax_action_name='';//AJAXアニメーション作品名
var $nowindex=1;//当前页
var $url="";//url地址头
var $offset=0; 

/** 
* constructor构造関数数
*
* @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax' ]...
  */
function page($array)
{
if(is_array($array)){
if(!array_key_exists('total',$array))$this->error( __FUNCTION__、'合計のパラメータが必要'); 
$total=intval($array['total']); 
$perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10; 
$nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):''; 
$url=(array_key_exists('url',$array))?$array['url']:''; 
}else{
$total=$array; 
$perpage=10; 
$nowindex=''; 
$url=''; 
}
if((!is_int($total))||($totalerror(__FUNCTION__,$total.' は正の整数ではありません!'); 
if((!is_int($perpage))||($perpageerror(__FUNCTION__,$perpage.' は正の整数ではありません!'); 
if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);//设置ページ名
$this->_set_nowindex($nowindex) ;//接地置当前页
$this->set_url($url);//接地置链址
$this->totalpage=ceil($total/$perpage); 
$this->offset=($this->nowindex-1)*$this->1 ページあたり; 
if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//打开AJAXモード式
}
/**
* 指定された変数名の値をクラスに設定します。変更がこのクラスに属さない場合、例外がスローされます
*
* @param string $var
* @param string $value
*/
function set ($var,$value)
{
if(in_array($var,get_object_vars($this)))
$this->$var=$value; 
else {
$this->error(__FUNCTION__,$var." は PB_Page に属していません!"); 
}

}
/**
* 倒された AJAX モードを起動します
*
* @param string $action 默承認ajax アクション。 
*/
function open_ajax($action)
{
$this->is_ajax=true; 
$this->ajax_action_name=$action; 
}
/**
* 「次のページ」を表示するコードを取得します
*
* @param string $style
* @return string
*/
function next_page($style='')
{
if($this->nowindextotalpage){
return $this->_get_link( $this->_get_url($this->>nowindex+1),$this->next_page,$style); 
}
return ''.$this->next_page.''; 
}

/**
* 「前のページ」を表示するコードを取得します
*
* @param string $style
* @return string
*/
function pre_page($style='')
{
if($this->nowindex>1){
return $this->_get_link($this-> ;_get_url($this->nowindex-1),$this->pre_page,$style); 
}
return ''.$this->pre_page.''; 
}

/**
* 「ホームページ」を表示するコードを取得します
*
* @return string
*/
function first_page($style='')
{
if($this->nowindex==1){
return ''.$this->first_page.''; 
}
return $this->_get_link($this->_get_url(1),$this->first_page,$style); 
}

/**
* 「最後のページ」を表示するコードを取得します
*
* @return string
*/
function last_page($style='')
{
if($this->nowindex==$this->totalpage){
return ''.$this->last_page.''; 
}
return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style); 
}

function nowbar($style='',$nowindex_style='')
{
$plus=ceil($this->pagebarnum/2); 
if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex) ; 
$begin=$this->nowindex-$plus+1; 
$begin=($begin>=1)?$begin:1; 
$return=''; 
for($i=$begin;$ipagebarnum;$i++)
{
if($itotalpage){
if($i!=$this ->nowindex)
$return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style)); 
else
$return.=$this->_get_text(''.$i.''); 
}else{
休憩; 
}
$return.="n"; 
}
unset($begin); 
return $return; 
}
/**
* ジャンプボタンを表示するコードを取得します
*
* @return string
*/
function select()
{
$return=''; 
return $return; 
}

/**
* mysql ステートメントの制限に必要な値を取得します
*
* @return string
*/
function offset()
{
return $this->offset; 
}

/**
* ページング表示スタイルの制御 (対応するスタイルを追加できます)
*
* @param int $mode
* @return string
*/
function show($mode=1)
{
switch ($mode)
{
case '1':
$this->next_page='次页' ; 
$this->pre_page='上一页'; 
return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页'; 
休憩; 
case '2':
$this->next_page='下一页'; 
$this->pre_page='上一页'; 
$this->first_page='首页'; 
$this->last_page='尾页'; 
return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this-> ;last_page().'第'.$this->select().'页'; 
休憩; 
case '3':
$this->next_page='下一页'; 
$this->pre_page='上一页'; 
$this->first_page='首页'; 
$this->last_page='尾页'; 
return $this->first_page().$this->pre_page().$this->next_page().$this->last_page(); 
休憩; 
case '4':
$this->next_page='下一页'; 
$this->pre_page='上一页'; 
return $this->pre_page().$this->nowbar().$this->next_page(); 
休憩; 
case '5':
return $this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar (); 
休憩; 
}

}
/*----------------private function (私有方法)--------- ---------------------------------------*/
/**
* URLヘッダーアドレスを設定します
* @param: String $url
* @return boolean
*/
function _set_url($url="")
{
if(!empty($url)){
//手動设置
$this->url=$url.((stristr($url,'?') )?'&':'?').$this->page_name."="; 
} else {
// .$this->page_name."="; 
}else{
//
if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){
//地址存在页面パラメータ
$this->url=str _replace( $this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']); 
$last=$this->url[strlen($this->url)-1]; 
if($last=='?'||$last=='&'){
$this->url.=$this->page_name."="; 
}else{
$this->url.='&'.$this->page_name."="; 
}
}else{
//
$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'='; 
}//end if
}//end if
}//end if
}

/**
* 現在のページを設定します
*
*/
function _set_nowindex($nowindex)
{
if(empty($nowindex)){
//系统获取

if(isset($_GET[$this->page_name])){
$this->nowindex=intval($_GET[$this->page_name]); 
}
}else{
//手動设置
$this->nowindex=intval($nowindex); 
}
}

/**
* 指定されたページのアドレス値を返します
*
* @param int $pageno
* @return string $url
*/
function _get_url($pageno=1)
{
return $this->url.$pageno; 
}

/**
* ページネーションの表示テキストを取得します。たとえば、デフォルトでは _get_text('1') は [1] を返します
*
* @param 文字列 $str
* @return 文字列 $url
*/
function _get_text($str)
{
return $this->format_left.$str.$this->format_right; 
}

/**
* リンクアドレスを取得します
*/
function _get_link($url,$text,$style=''){
$style=(empty($style))?'':'class="'。 $style.'"'; 
if($this->is_ajax){
//如果是使用AJAXモード
return 'ajax_action_name.'(''.$url.'')">'.$text.''; 
}else{
return ''.$text.''; 
}
}
/**
※エラー時の対処方法
*/
function error($function,$errormsg)
{
die('ファイル内のエラー'.__FILE__.' ,Function '.$function.'() :'.$errormsg); 
}
}
?>

一简单的演演デモを提供します
复制代码代码如下:
 
require_once('../libs/classes/page.class.php'); 
$page=新しいページ(array('total'=>1000,'perpage'=>20)); 
echo 'mode:1
'.$page->show(); 
echo '
mode:2
'.$page->show(2); 
echo '
mode:3
'.$page->show(3); 
echo '
mode:4
'.$page->show(4); 
echo '
开開始AJAXモード:'; 
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test')); 
echo 'mode:1
'.$ajaxpage->show(); 
?> 

デモのアドレス: http://traffic02.100steps.net/52site/test/page.php

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317494.html技術記事超強力なページング クラス 2.0 がリリースされ、カスタム スタイルと 4 つのデフォルト表示モードがサポートされました。フォーラムで Baidu ページング クラスを求めている人を見かけたので、数週間前に作成したページング クラスを投稿しました。 1.0 に対する 2.0 の修正は次のとおりです...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。Apr 29, 2025 am 12:42 AM

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

セッションロックの概念を説明します。セッションロックの概念を説明します。Apr 29, 2025 am 12:39 AM

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの選択肢はありますか?PHPセッションの選択肢はありますか?Apr 29, 2025 am 12:36 AM

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

PHPのコンテキストで「セッションハイジャック」という用語を定義します。PHPのコンテキストで「セッションハイジャック」という用語を定義します。Apr 29, 2025 am 12:33 AM

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

PHPの完全な形式は何ですか?PHPの完全な形式は何ですか?Apr 28, 2025 pm 04:58 PM

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPはフォームデータをどのように処理しますか?PHPはフォームデータをどのように処理しますか?Apr 28, 2025 pm 04:57 PM

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

PHPとASP.NETの違いは何ですか?PHPとASP.NETの違いは何ですか?Apr 28, 2025 pm 04:56 PM

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPはケースに敏感な言語ですか?PHPはケースに敏感な言語ですか?Apr 28, 2025 pm 04:55 PM

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター