分頁功能是PHP程序設計中非常常見的功能,不同於以往的,今天本文介紹的是PHP基於數組實現的分頁函數。
關於數組的分頁函數,用數組進行分頁的好處是可以方便的進行聯合多表查詢,只需要將查詢的結果放在數組中就可以了以下是數組分頁的函數,函數page_array用於數組的分頁,函數show_array用於分頁函數的操作及顯示,需要配合使用。兩個函數通過全局變量$countpage發生聯系,此變量用於跟蹤總頁碼數。
具體實例代碼如下:
<?php /** * 數組分頁函數 核心函數 array_slice * 用此函數之前要先將數據庫裡面的所有數據按一定的順序查詢出來存入數組中 * $count 每頁多少條數據 * $page 當前第幾頁 * $array 查詢出來的所有數組 * order 0 - 不變 1- 反序 */ function page_array($count,$page,$array,$order){ global $countpage; #定全局變量 $page=(empty($page))?'1':$page; #判斷當前頁面是否為空 如果為空就表示為第一頁面 $start=($page-1)*$count; #計算每次分頁的開始位置 if($order==1){ $array=array_reverse($array); } $totals=count($array); $countpage=ceil($totals/$count); #計算總頁面數 $pagedata=array(); $pagedata=array_slice($array,$start,$count); return $pagedata; #返回查詢數據 } /** * 分頁及顯示函數 * $countpage 全局變量,照寫 * $url 當前url */ function show_array($countpage,$url){ $page=empty($_GET['page'])?1:$_GET['page']; if($page > 1){ $uppage=$page-1; }else{ $uppage=1; } if($page < $countpage){ $nextpage=$page+1; }else{ $nextpage=$countpage; } $str='<div >'; $str.="<span>共 {$countpage} 頁 / 第 {$page} 頁</span>"; $str.="<span><a href='$url?page=1'> 首頁 </a></span>"; $str.="<span><a href='$url?page={$uppage}'> 上一頁 </a></span>"; $str.="<span><a href='$url?page={$nextpage}'>下一頁 </a></span>"; $str.="<span><a href='$url?page={$countpage}'>尾頁 </a></span>"; $str.='</div>'; return $str; } ?>
希望本文所述實例對大家的PHP程序設計能起到一定的借鑒作用。
你沒有<<PHP手冊嗎>>,裡面的39章,專門一章來講文件上傳,非常詳細,最簡單的部分如下:
POST 方法上傳
本特性可以使用戶上傳文本和二進制文件。用 PHP 的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理。
PHP 能夠接受任何來自符合 RFC-1867 標准的浏覽器(包括 Netscape Navigator 3 及更高版本,打了補丁的 Microsoft Internet Explorer 3 或者更高版本)上傳的文件。
相關的設置: 請參閱 php.ini 的 file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size 以及 max_input_time 設置選項。
請注意 PHP 也支持 PUT 方法的文件上傳,Netscape Composer 和 W3C 的 Amaya 客戶端使用這種方法。請參閱對 PUT 方法的支持以獲取更多信息。
例 39.1. 文件上傳表單
可以如下建立一個特殊的表單來支持文件上傳:
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="fi......余下全文>>
oracle 實現分頁要用到rownum 代碼如下
select * from (select t.* rownum row_id form (select * from 表名) t ) where row_id>=1 and row_id<=10
這條SQL語句就可以實現分頁查詢,當然光有SQL還是不行,用以下的PHP 函數就可實現分頁了。
/*分頁函數*/
function page($page,$total,$phpfile,$pagesize=10,$pagelen=10,$str='')
{
$pagecode = '';//定義變量,存放分頁生成的HTML
$page = intval($page);//避免非數字頁碼
$total = intval($total);//保證總記錄數值類型正確
if(!$total) return array();//總記錄數為零返回空數組
$pages = ceil($total/$pagesize);//計算總分頁
//處理頁碼合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//計算查詢偏移量
$offset = $pagesize*($page-1)+1;
//頁碼范圍計算
$init = 1;//起始頁碼數
$max = $pages;//結束頁碼數
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//頁碼個數
$pageoffset = ($pagelen-1)/2;//頁碼個數左右偏移量
//生成html
$pagecode='<div class="page">';
$pagecode.="<span>共".$total."條信息 第".$page."頁/共".$pages."頁</span>\n";//第幾頁,共幾頁
//如果是第一頁,則不顯示第一頁和上一頁的連接
if($page!=1){
$pagecode.="<a href=\"{$phpfile}?page=1&$str\"> 首頁 </a> ";//第一頁
$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."&$str\"> 上頁 </a> ";//上一頁
}
//分頁數大於頁碼個數時可以偏移
if($pages>$pagelen)
{
//如果當前頁小於等於左偏移
if($page<=$pageoffset)
{
$init=1;
$max = $pagelen;
}else
{
//如......余下全文>>
來自UC浏覽器