php分页代码的原理

 更新时间:2016年11月25日 17:33  点击:1544
 代码如下 复制代码

//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:
$page = $_get[page];
if(!function_exists(pageft)){
//定义函数pageft(),三个参数的含义为:
//$totle:信息总数;
//$displaypg:每页显示信息数,这里设置为默认是20;
//$url:分页导航中的链接,除了加入不同的查询信息"page"外的部分都与这个url相同。
//   默认值本该设为本页url(即$_server["request_uri"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页url。
function pageft($totle,$displaypg=20,$url=''){

//定义几个全局变量:
//$page:当前页码;
//$firstcount:(数据库教程)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_server:读取本页url"$_server["request_uri"]"所必须。
global $page,$firstcount,$pagenav,$_server;

//为使函数外部可以访问这里的"$displaypg",将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。
$globals["displaypg"]=$displaypg;

if(!$page) $page=1;

//如果$url使用默认,即空值,则赋值为本页url:
if(!$url){ $url=$_server["request_uri"];}

//url分析:
$parse_url=parse_url($url);
$url_query=$parse_url["query"]; //单独取出url的查询字串
if($url_query){
//因为url中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。
//这里用到了正则表达式,请参考"php中的正规表达式"
$url_query=preg_replace("/(^|&)page=$page/","",$url_query);

//将处理后的url的查询字串替换原来的url的查询字串:
$url=str_replace($parse_url["query"],$url_query,$url);

//在url后加page查询信息,但待赋值:
if($url_query) $url.="&page"; else $url.="page";
}else {
$url.="?page";
}

//页码计算:
$lastpg=ceil($totle/$displaypg); //最后页,也是总页数
$page=min($lastpg,$page);
$prepg=$page-1; //上一页
$nextpg=($page==$lastpg ? 0 : $page+1); //下一页
$firstcount=($page-1)*$displaypg;

//开始分页导航条代码:
$pagenav="显示第 <b>".($totle?($firstcount+1):0)."</b>-<b>".min($firstcount+$displaypg,$totle)."</b> 条记录,共 $totle 条记录";

//如果只有一页则跳出函数:
if($lastpg<=1) return false;

$pagenav.=" <a href='$url=1'>首页</a> ";
if($prepg) $pagenav.=" <a href='$url=$prepg'>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href='$url=$nextpg'>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href='$url=$lastpg'>尾页</a> ";

//下拉跳转列表,循环列出所有页码:
$pagenav.=" 到第 <select name='topage' size='1' onchange='window.location="$url="+this.value'> ";
for($i=1;$i<=$lastpg;$i++){
if($i==$page) $pagenav.="<option value='$i' selected>$i</option> ";
else $pagenav.="<option value='$i'>$i</option> ";
}
$pagenav.="</select> 页,共 $lastpg 页";
}
}

 代码如下 复制代码

<!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">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>上传文件程序</title>
<style type="text/css教程">
*{
 font-size:12px;
 margin:0; padding:0;
}
a:link,a:visited{
 text-decoration:none;
 color: #393
}
a:hover{
 text-decoration:underline;
 color:#0033cc
}
input.text{
 border:1px solid #ccc;height:22px;line-height:22px;padding-left:5px;background:#fff;width:274px;
}
input.button{
 background:#fff url(images/button.png);border:1px solid #9ea9c5;padding:2px 2px 0px 2px;margin-left:4px; margin-right:4px;
}
</style>
<script language=网页特效>
function check()
{
 var strfilename=document.myform.upfile.value;
 if (strfilename=="")
 {
     alert("请选择要上传的文件");
  document.myform.upfile.focus();
     return false;
   }
}
</script>
</head>

<body>
<?php
/***********************
程序:上传文件
功能:上传文件、缩略图、加水印
****************************/
include("common/upfiles.class.php");
$path="../upload/coolsite";    //文件上传路径
$mix="smallimg";     //缩略图路径(在upload下建立)
$mark="markimg";    //加水引的图片存放路径(在upload下建立)
$text = array("www.111cn.net");   //水印内容
$oupload= new upfiles($path,$mix,$mark);   //实例化类文件

if(isset($_post['up'])){
 
 if($_post['urlid']=='1'){ //上传图片 参数urlid 1:上传图片  2:上传其他文件..
  
  $oupload->tofile = true;  //开启则只保存缩略图或者水印图,删除原图
  $photo = $oupload->upload("upfile"); //上传的文件域
  $photourl = $oupload->fileurl."/".$photo;
  $newsmallimg = $oupload->smallimg($photo);  //缩略图功能
  //$newmarkimg = $oupload->watermark($photo,$text); //水印功能

  //echo $newsmallimg;  //输出缩略图路径
  //echo $newmark; //输出水印图路径
  //echo "<img src='".$newsmallimg."' border='0'>"; //输出缩略图
  //echo "<img src='".$newmark."' border='0'>"; //输出水印图
 }else{
  $upfilename = $oupload->upload("upfile"); //上传的文件域
 }
 $strjs = "<script language=javascript> ";
 $strjs .= "parent.document.myform.upfile1.value='".$newsmallimg."' ";
 $strjs .= "parent.document.myform.upfile2.value='".$photourl."' ";
 $strjs .= "</script> ";
 echo $strjs;  //把上次文件路径附在upfile1、upfile2中去
}else{
?>
<form action="upfile.php" method="post" enctype="multipart/form-data" name="myform" onsubmit="return check()">
<input type="file" name="upfile" value="" class="text"><input type="submit" name="up" value="上传" class="button">
<input type="hidden" name="urlid" value="<?php echo $_get['urlid']?>">
</form>
<?php }?>
</body>
</html>

<?
//upfiles.class.php

/*=========================
上传类 upfiles.class.php
===========================*/
class upfiles {
  /*=========================
   //基本参数设置
  ===========================*/
        protected $annexfolder = "upload";  //附件存放点,默认为:upload
  protected $dirtype = 2;   //1:按天存入目录 2:按月存入目录
        protected $smallfolder = "smallimg";   //缩略图存放路径,注:必须是放在 $upload下的子目录,默认为:smallimg
        protected $markfolder = "markimg";    //水印图片存放路径,注:必须是放在 $upload下的子目录,默认为:markimg
        protected $upfiletype = "jpg gif png rar zip";   //上传的类型,默认为:jpg gif png rar zip
        protected $upfilemax = 102400;   //上传大小限制,单位是"kb",默认为:1024kb
        protected $fonttype = "common/equinoxstd.otf";   //水印字体库
        protected $maxwidth = 800;   //图片最大宽度
        protected $maxheight = 600;  //图片最大高度
  
  /*=========================
   //初始化上传类
  ===========================*/
        public function __construct($annexfolder,$smallfolder,$includefolder) {
   
    switch($this->dirtype)
    {
     case 1: $attach_subdir = 'day_'.date('ymd'); break;
     case 2: $attach_subdir = 'month_'.date('ym'); break;
    }
    $attach_dir = $annexfolder.'/'.$attach_subdir;
    $attach_dir_small = $attach_dir.'/'.$smallfolder;
    $attach_dir_mark = $attach_dir.'/'.$includefolder;    
    
    $this->rootfolder = $annexfolder;
                $this->annexfolder = $attach_dir;
                $this->smallfolder = $attach_dir_small;
    $this->markfolder = $attach_dir_mark;
                //$this->fonttype = $includefolder."/nasaliza.ttf";
        }
  public function __get($fileurl){
   $fileurl = $this->annexfolder;
   return $fileurl;
  }
  /*=========================
   //上传文件
  ===========================*/
        public function upload($inputname) {
    //检查文件夹是否存在    
    if(!file_exists($this->annexfolder)){
     if(!file_exists($this->rootfolder)) @mkdir($this->rootfolder);
     if(!file_exists($this->annexfolder)) @mkdir($this->annexfolder);
     if(!file_exists($this->smallfolder)) @mkdir($this->smallfolder);
     if(!file_exists($this->markfolder)) @mkdir($this->markfolder);
    }
    if(!file_exists($this->smallfolder)){
     @mkdir($this->smallfolder);
    }    
    if(!file_exists($this->markfolder)){
     @mkdir($this->markfolder);
    }
        
    $this->uptype = $_files[$inputname]["type"];
    $this->upname = $_files[$inputname]["name"];
    $this->uptmp_name = $_files[$inputname]["tmp_name"];
    $this->ups教程ize = $_files[$inputname]["size"];
    $this->uperror = $_files[$inputname]["error"];

    if($this->uptype){
     switch ($this->uptype)///检查上传的类型
     {    
      case "image/pjpeg":    
       $fileextname = "jpg";    
       break;
      case "image/jpeg":    
       $fileextname = "jpg";    
       break;  
      case "image/gif":    
       $fileextname = "gif";    
       break;    
      case "image/x-png":    
       $fileextname = "png";    
       break;    
      case "application/x-shockwave-flash":    
       $fileextname = "swf";    
       break;    
      case "text/plain":    
       $fileextname = "txt";    
       break;    
      case "application/msword":    
       $fileextname = "doc";    
       break;
      case "application/vnd.ms-excel":    
       $fileextname = "xls";    
       break;
      case "application/x-zip-compressed":    
       $fileextname = "zip";    
       break;
      case "audio/mpeg":
       $fileextname = "mp3";    
       break;
      case "audio/x-ms-wma":
       $fileextname = "wma";    
       break;
      case "application/pdf":
       $fileextname = "pdf";    
       break;
      default: //如果不满足上述类型,那么上传文件被判断为格式不正确!!
       //$fileextname  =strtolower(substr(strrchr(trim($this->upname), "."),1,4));
       //$fileinfo=pathinfo($this->upname);
       //$fileextname=$fileinfo['extension'];
       $fileextname = "err";
      }
     }
    

 

 代码如下 复制代码

<?php
header("content-type:application/vnd.ms-excel; charset=gbk");
    header("content-disposition:attachment;filename=test_data.xls");


$link=mysql教程_connect('localhost','root','hhhkkk');
if($link){

    mysql_select_db('dataui',$link);
    mysql_query("set names 'gbk'");
    echo "数据库教程连接已经成功!";
}else{
     echo "数据库连接失败!";
}

echo "项目名称"." ";
echo "项目详情"." ";
$sql="select * from php168_item_content where fid='11'";
$query=mysql_query($sql);
while($rs=mysql_fetch_array($query)){
          echo $rs[title]." ";
     $sql2="select * from php168_item_content_1 where id='$rs[id]'";
   $query2=mysql_query($sql2);
   while($rs2=mysql_fetch_array($query2)){
   echo $rs2[content]." ";
   echo " ";
     
   }
                       
}


?>

导出excel时,如果某列导出的是身份证号的话,打开excel文件以后会发现,身份证号自动采用科学计数法,无论如何修改该列属性,都无法实现自己的要求。网上有人说,先把该列属性改为文本以后,再输入就没有问题,实际操作excel确实如此,但是,php程序导出就无法做到了

 

 代码如下 复制代码

<?php
        // 实验资料,实际作业中,这里应该是从数据库取得资料
        $emps教程[0]['id'] = '00001';
        $emps[0]['name'] = 'abc';
        $emps[0]['sexual'] = '男';
        $emps[0]['age'] = 28;

        $emps[1]['id'] = '00002';
        $emps[1]['name'] = 'bbc';
        $emps[1]['sexual'] = '男';
        $emps[1]['age'] = 23;

        $emps[2]['id'] = '00003';
        $emps[2]['name'] = 'cba';
        $emps[2]['sexual'] = '女';
        $emps[2]['age'] = 20;
     
        ini_set('include_path', '/data/website/htdocs/includes');
        require_once('smarty.php');
        $smarty = new smarty();

        $smarty->assign('emps', $emps);

        // 输出文件头,表明是要输出 excel 文件
        header("content-type: application/vnd.ms-excel");
        header("content-disposition: attachment; filename=test.xls");
        $smarty->display('excel-xml.tpl');
?>

php判断文件是否存在其实很简单,只需要一个函数即可:file_exists(文件路径); 用此函数一般用来判断文件是否存在,然后操作,常用的有删除文件:unlink(文件路径);
 代码如下 复制代码
if(file_exists("data.txt"))
 {
  print("这个文件存在");  //文件存在
  print(fileinode("data.txt"));
 }
 else
 {
  print("文件不存在");  //文件不存在
 }


方法二

 代码如下 复制代码
<?php session_start();
if($submit=="查找"){
$file_up=$_post[files];
if(file_exists($file_up)){
echo "文件已经存在!!";
}else{echo "该文件不存在!!";}
}
?>


方法三

 

 代码如下 复制代码
<?php
$filename = './d243375_0.png';
$filename = realpath($filename);
if (!file_exists($filename)) {
die("图片不存在~!");
}
$size = getimagesize ($filename);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
if("image/png" != $size['mime'] || $file_extension != "png"){
die("这不是一张完整的png图片");
}
$img = @imagecreatefrompng ($filename);
if($img){
ob_start("output_handler");
imagepng($img);
ob_end_flush();
}else{
die("不能正确的创建png图形,请检查png图形是否完好~");
}
function output_handler($img) {
header('content-type: image/png');
header('content-length:'.strlen($img));
return $img;
}
?>
本文章是一款完整的Ajax用户注册验证实例代码,利用了ajax php实现在用户输入完用户名了就验证这个用户名是否被注册了,然后给出正确的提示。
 代码如下 复制代码
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gbk">
<title>ajax用户注册验</title>
<link href="style.css教程" rel="stylesheet" type="text/css">
<script language="网页特效" type="text/javascript" src="from_ck.js"></script>
</head>
<body>
<div id="reg">
<h1>ajax用户注册验证</h1>
<form name="formuser" onsubmit="return register();" action=user.php
method=post>
  <br>
  <table width="100%" align=center border=0>
    <tbody>
      <tr>
        <td align=right width="15%"><strong>用户名:</strong></td>
        <td width="57%"><input id="username" onblur="chkusername(this)"
      name="username">
            <span id="username_notice" >*</span></td>
      </tr>
      <tr>
        <td align=right><strong>email:</strong></td>
        <td><input id="email" onblur="checkemail(this)" name="email">
            <span id=email_notice >*</span></td>
      </tr>
      <tr>
        <td align=right><strong>密码:</strong></td>
        <td><input id="password" onblur="check_password(this)"
      onkeyup="checkintensity(this.value)" type="password" name="password">
            <span
      id=password_notice >*</span></td>
      </tr>
      <tr>
        <td align=right><strong>密码强度:</strong></td>
        <td><table cellspacing=0 cellpadding=1 width=145 border=0>
          <tbody>
            <tr align=middle>
              <td id=pwd_lower width="33%">弱</td>
              <td id=pwd_middle width="33%">中</td>
              <td id=pwd_high width="33%">强</td>
            </tr>
          </tbody>
        </table></td>
      </tr>
      <tr>
        <td align=right><strong>确认密码:</strong></td>
        <td><input id="conform_password" onblur="check_conform_password(this)"
      type="password" name="confirm_password">
            <span id=conform_password_notice >*</span></td>
      </tr>
      <tr>
        <td align=right><strong>msn:</strong></td>
        <td><input name=other[msn]>        </td>
      </tr>
      <tr>
        <td align=right><strong>qq:</strong></td>
        <td><input name=other[qq]>        </td>
      </tr>
      <tr>
        <td align=right><strong>办公电话:</strong></td>
        <td><input name=other[office_phone]>        </td>
      </tr>
      <tr>
        <td align=right><strong>家庭电话:</strong></td>
        <td><input name=other[home_phone]>        </td>
      </tr>
      <tr>
        <td align=right><strong>手机:</strong></td>
        <td><input name=other[mobile_phone]>        </td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><label>
          <input type="checkbox" checked value="1" name="agreement" onblur="check_agreement(this)">
          <b>我已看过并接受《<a href="#">用户协议</a>》<span id=agreement_notice >*</span></b></label></td>
      </tr>
      <tr>
        <td  ><input type=hidden value=act_register name=act></td>
        <td  ><input type=submit value=确认注册&nbsp;&nbsp;&nbsp; name="submit1" class="anniu" disabled></td>
      </tr>
      <tr>
        <td colspan=2>&nbsp;</td>
      </tr>
    </tbody>
  </table>
</form>
</div>
</body>
</html>

源码下载地址
http://down.111cn.net/down/code/js/2010/0904/20636.html
效果预览地址
http://g.111cn.net/javascript/code/20100904/ajax/

[!--infotagslink--]

相关文章

  • php KindEditor文章内分页的实例方法

    我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
  • 自己动手写的jquery分页控件(非常简单实用)

    最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • jquery实现的伪分页效果代码

    本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • vue.js 表格分页ajax 异步加载数据

    Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07