php txt留言板(还分页功能)

 更新时间:2016年11月25日 16:27  点击:1316
 代码如下 复制代码
$file            =        "data.dat";        //数据文件
if(file_exits($file)){                        //容错处理,防止无数据文件存在
    $fp=fopen($file,"w+");
    fclose($fp);
    unset($fp);
}
$listnumber        =        20;            //每页显示条数
$fp            =        file($file);        //读取数据到内容中
$number            =        count($fp);        //计算总数据量
$pagenumber        =        floor($number/$listnumber)+1;
if($number<1){
    print "暂时无记录,欢迎留言";
    /*+--------------------------------+
          |在这里打印form表单或连接到表但的|
          | url,               |
          +--------------------------------+*/
}else{
    if(empty($_post["page"])){                //这段if...else...是为了兼容php4.20的默认设置,防止出现无效的全局变量而写的
        $page        =    0;            //因为是从数据文本读出来的,保存在数组中,有个o下标
    }else{
        $page        =    $_post["page"]
    }
    if($page<0 || $page>pagenumber){            //检错处理,当页面参数跳出总页面或小于首页(0)的时候,将返回到第一页
        $page=0;
    }
    $startnote    =    $page*$listnumber;        //开始记录位置
    $endnote    =    $startnote+$listnumber;        //结束记录位置
    //for($int_a=$startnote;$int_a<$endnote;$int_a++){    //排序显示类似asc模式
    pirnt "<table>"
    for($int_a=$endnote;$int_a>=$startnote;$int_a--){    //排序显示类似desc模式
        $info=explode(" ",$fp[$int-a]);        //切割数据获得每条记录的详细数据我这里是用了一个tab键分割
        print "<tr><td>用户:$info[1] 标题$info[2] 发言内容:$info[3] 发布时间:$info[4] ip:$info[5]";
    }
    $prevpage    =    $page-1;            //上一页的page数
    $nextpage    =    $page+1;            //下一页的page数
    print "<tr><td>
    <a href="$_server["php_self"]?page=0">首页</a>
    <a href="$_server["php_self"]?page=$prevpage">上一页</a>
    <a href="$_server["php_self"]?page=$nextpage">下一页</a>
    <a href="$_server["php_self"]?page=$pagenumber">尾页</a>
    </table>";                        //这里您可以直接将页面的检测加到这里,那样给别人看的是舒服的,但是效果是一样的
                                //例如:这里有可能出现20页出现        <a href="index.php?page=21">下一页</a>    或<a href="index.php?page=-1">


}

这是一款完美的php文件上传代码,图片上传成功后并自动给图片增加上水印,这样很好的快速的提高的了要手工一张张增加水印效果。
 代码如下 复制代码

 function upload($uploadfile,$watermark=1,$watertype=1,$content){
  foreach($uploadfile['name'] as $key=>$name) {  //多文件上传函数
   uploadall($uploadfile,$key,$watermark,$watertype,$content);
  }
 }
 function uploadall($uploadfile,$i,$watermark,$watertype,$content) {
  $watermark=$watermark;         //是否附加水印(1为加水印,其他为不加水印);
  $watertype=$watertype;         //水印类型(1为文字,2为图片)
  $watercontent=$content;         //水印的内容
  if(empty($uploadfile['name'][$i])) {
   die("未选择文件上传");
  }
  if($uploadfile['error'][$i] == 2) {   //验证html判断结果
   die("上传的文件太大了");
  }
  $allow_filemaxsize = 2048000;    // 2m
  $filesize = $uploadfile['size'][$i];
  if($filesize > $allow_filemaxsize) {
   die("上传的文件太大了");
  }
  $allow_filetypes = array("jpeg", "gif", "png","jpg","pjpeg");//允许上传的文件统一资源类型 mimetype
  $allow = false;        //默认都不允许
  $mimetype = $uploadfile['type'][$i];  //上传文件的mime文件类型
  foreach($allow_filetypes as $t) {
   if(strpos($mimetype, $t) !== false) {
    $allow = true;      //找到了符合上传条件的文件类型
    break;
   }
  }
  if($allow == false) {
   die("上传的文件类型不被允许");
  }
  $result = is_uploaded_file($uploadfile['tmp_name'][$i]);   //判断是否为上传动作产生的
  if(!$result) {
   die("上传的文件有误");
  }
  $uploaddir = "img/";       //上传文件保存目录
  if(!file_exists($uploaddir)) mkdir($uploaddir, 0777, true);//若上传保存目录不存在,则递归创建
  /**重命名文件**/
  $filetype = explode(".", $uploadfile['name'][$i]);
  $filetype = array_pop($filetype);
  $uploadfilename = time().".".$filetype;
  $_session['filename'] = $uploadfilename;
  //end
  $result = move_uploaded_file($uploadfile['tmp_name'][$i], $uploaddir.$uploadfilename);
  if($result) {
   echo  "文件上传成功";
  }else{
   switch($uploadfile['error'][$i]) {
    case 1:return "上传的文件超出了php.ini中设定的最大值";break;
    case 2:return "上传的文件超出了html中设定的最大值";break;
    case 3:return "文件只有部分被上传";break; 
    case 4;return "没有文件被上传";break; 
    default:die("文件上传失败");  
   }
  }
  if($watermark==1) {
   $iinfo=getimagesize($uploaddir.$uploadfilename);  //获取图片的相关信息,得到数组
   $nimage=imagecreatetruecolor($iinfo[0],$iinfo[1]);
   $white=imagecolorallocate($nimage,255,255,255); //设置背景颜色为白色
   $black=imagecolorallocate($nimage,0,0,0);  //设置背景颜色为黑色
   $red=imagecolorallocate($nimage,255,0,0);  //设置背景颜色为红色
   imagefill($nimage,0,0,$white);     //背景填充为白色
   switch ($iinfo[2]) {
    case 1:
    $simage =imagecreatefromgif($uploaddir.$uploadfilename);
    break;
    case 2:
    $simage =imagecreatefromjpeg($uploaddir.$uploadfilename);
    break;
    case 3:
    $simage =imagecreatefrompng($uploaddir.$uploadfilename);
    break;
    case 6:
    $simage =imagecreatefromwbmp($uploaddir.$uploadfilename);
    break;
    default:
    die("不支持的文件类型");
    exit;
   }
   imagecopy($nimage,$simage,0,0,0,0,$iinfo['0'],$iinfo['1']);
   switch($watertype) {
    case 1:             //加水印字符串
    imagestring($nimage,5,$iinfo['0']/2-50,$iinfo['1']-30,$watercontent,$black);
    break;
    case 2:            //加水印图片
    $simage1 =imagecreatefromgif($watercontent);
    $size = getimagesize($watercontent);
    imagecopy($nimage,$simage1,$iinfo['0']/2+50,$iinfo['1']-100,0,0,$size[0],$size[1]);
    imagedestroy($simage1);
    break;
   }

   switch ($iinfo[2]) {
    case 1:
    imagejpeg($nimage, $uploaddir.$uploadfilename); //将图像$nimage以$destination文件名创建一个jpeg的格式文件
    break;
    case 2:
    imagejpeg($nimage, $uploaddir.$uploadfilename);
    break;
    case 3:
    imagepng($nimage, $uploaddir.$uploadfilename);
    break;
    case 6:
    imagewbmp($nimage, $uploaddir.$uploadfilename);
    break;
   }
   imagedestroy($nimage);    //覆盖原上传文件
   imagedestroy($simage);
  }
}
if(@$_get['act'] == "insert") {    //未作参数校验
     //该函数的四个参数分别是:上传控件的name值;是否加水印(1为加,其他数字为不佳);
     //水印的类型(1为字符串,2为图片);水印的内容,字符串时写数据,图片时写图片的地址;
 $picture = upload($_files['picture'],1,2,"img/watermark.gif");//上传文件,并返回上传后的文件路径名

}

?>

上传代码

 代码如下 复制代码

<form method="post" action="" enctype="multipart/form-data">
 <table border="1" cellpadding="5" cellspacing="0">
  <tr>
   <td>产品图片:</td>
   <td><input type="hidden" name="max_file_size" value="1024000">
    <input type="file" name="picture[]">
   </td>
  </tr>
  <tr>
   <td colspan="2" align="center"><input type="submit" value="提交"></td>
  </tr>
 </table>
</form>

 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写

并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器s停止运行或崩溃了,所有存放在s上的键/值对都将丢失。   memcached由danga interactive开发,用于提升livejournal.com访问速度的。lj每秒动态页面访问量几千次,用户700万。memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

memcache常用方法

memcache::add — 添加一个值,如果已经存在,则返回false
memcache::addserver — 添加一个可供使用的服务器地址
memcache::close — 关闭一个memcache对象
memcache::connect — 创建一个memcache对象
memcache::debug — 控制调试功能
memcache::decrement — 对保存的某个key中的值进行减法操作
memcache::delete — 删除一个key值
memcache::flush — 清除所有缓存的数据
memcache::get — 获取一个key值
memcache::getextendedstats — 获取进程池中所有进程的运行系统统计
memcache::getserverstatus — 获取运行服务器的参数
memcache::getstats — 返回服务器的一些运行统计信息
memcache::getversion — 返回运行的memcache的版本信息
memcache::increment — 对保存的某个key中的值进行加法操作
memcache::pconnect — 创建一个memcache的持久连接对象
memcache::replace — r对一个已有的key进行覆写操作
memcache::set — 添加一个值,如果已经存在,则覆写
memcache::setcompressthreshold — 对大于某一大小的数据进行压缩
memcache::setserverparams — 在运行时修改服务器的参数

memcache方法使用

代码如下:

 代码如下 复制代码
<?php教程
$memcache = new memcache;
$memcache->connect('127.0.0.1', 11211) or die("连接失败");
$memcache->set('name', '张三');
$val = $memcache->get('name');
?>

注:set方法的完整版本,set(键名,键值,是否压缩,保持时间)

 代码如下:

 代码如下 复制代码
<?php
$memcache = new memcache;
$memcache -> connect('127.0.0.1', 11211) or die("连接失败");
$memcache -> set('name', array('一个','两个'));
$val = $memcache->get('name');
print_r($val);
$memcache -> close();
?> 
php 递归删除目录(文件夹)下面举了两个实例,一个是删除单独的空目录代码,一个是批量删除目录文件夹的代码。

//删除单个空文件夹

 代码如下 复制代码

$dir = 'www.111cn.net';
if( is_dir( $dir ) ) //判断是否为目录
{
 if( rmdir( $dir ) )
 {
  echo '目录删除成功';
 }
 else
 {
  echo '没有删除目录的权限';
 }
}
else
{
 echo '不是一个有效的目录';
}

//下面来看一个批量递归删除目录的函数吧。

 代码如下 复制代码
function deletedir($dir){
      if(!handle=@opendir($dir)){     //检测要打开目录是否存在
               die("没有该目录");
      }
     while(false !==($file=readdir($handle))){
               if($file!=="."&&$file!==".."){       //排除当前目录与父级目录
                            $file=$dir .directory_separator. $file;
                            if(is_dir($file)){
                                  deletedir($file);
                            }else{
                                  if(@unlink($file)){
                                         echo "文件<b>$file</b>删除成功。<br>";
                                  }else{
                                          echo  "文件<b>$file</b>删除失败!<br>";
                                 }
                }
     }
    if(@rmdir($dir)){
           echo "目录<b>$dir</b>删除成功了。<br> ";
    }else{
           echo "目录<b>$dir</b>删除失败!<br> ";
  }
}
 


//测试程序
$dir="/var/www/test";
deletedir($dir);

这里你可以下载dedecms然后找到lib_splitword_full.php这个文件,或者到http://down.111cn.net下载分词包,按照下面的方法就可以正确的使用dedecms的分词系统了。

require("lib_splitword_full.php");

$str = "一线楼市交易清淡";


$t1 = exectime();

$sp = new splitword();

$t2 = exectime();

//$t0 = $t2-$t1;

//echo "载入时间: $t0 <br><br>";


echo $sp->findnewword($sp->splitrmm($str))."<hr>";
echo $sp->splitrmm($str)."<hr>";

$sp->clear();

echo $str."<br>";

$t3 = exectime();
$t0 = $t3-$t2;
echo "<br>处理时间: $t0 <br><br>";


function exectime(){
 $time = explode(" ", microtime());
 $usec = (double)$time[0];
 $sec = (double)$time[1];
 return $sec + $usec;
}

[!--infotagslink--]

相关文章

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

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

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

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

    Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
  • node.js+express留言板功能实现示例

    本文介绍基于nodejs+express+art-template的留言板功能。包含列表界面、添加界面和发送留言功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-21
  • Springboot如何使用mybatis实现拦截SQL分页

    这篇文章主要介绍了Springboot使用mybatis实现拦截SQL分页,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-19
  • PHP 一个完整的分页类(附源码)

    在php中要实现分页比起asp中要简单很多了,我们核心就是直接获取当前页面然后判断每页多少再到数据库中利用limit就可以实现分页查询了,下面我来详细介绍分页类实现程序...2016-11-25
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • jquery实现的伪分页效果代码

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

    这篇文章主要为大家详细介绍了AngularJS实现分页显示数据库信息效果的相关资料,感兴趣的小伙伴们可以参考一下...2016-07-06
  • php+ajax制作无刷新留言板

    本文就是和大家分享一款由php结合ajax实现的无刷新留言板,先给大家看一下最后的效果图:数据库连接代码如下: <&#63;php$conn = @mysql_connect("localhost","root","root") or die ("MySql连接错误");mysql_select_db("d...2015-10-30
  • 基于jquery实现表格无刷新分页

    这篇文章主要介绍了基于jquery实现表格无刷新分页,功能实现了前端排序功能,增加了前端搜索功能,感兴趣的小伙伴们可以参考一下...2016-01-08
  • vue实现页面打印自动分页的两种方法

    这篇文章主要为大家详细介绍了vue实现页面打印自动分页的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-29
  • C#实现图片放大功能的按照像素放大图像方法

    这篇文章主要介绍了C#实现图片放大功能的按照像素放大图像方法,功能非常实用,需要的朋友可以参考下...2020-06-25
  • python中翻译功能translate模块实现方法

    在本篇文章中小编给各位整理了一篇关于python中翻译功能translate模块实现方法,有需要的朋友们可以参考下。...2020-12-18
  • vue.js表格分页示例

    这篇文章主要为大家详细介绍了vue.js表格分页示例,ajax异步加载数据...2016-10-20
  • C# DataTable分页处理实例代码

    有时候我们从数据库获取的数据量太大,而我们不需要一次性显示那么多的时候,我们就要对数据进行分页处理了,让每页显示不同的数据。...2020-06-25
  • AngularJS 让人爱不释手的八种功能

    AngularJS 让人爱不释手的八种功能,想知道AngularJS哪八种功能让人喜欢就快点看下本文吧...2016-03-28
  • 微信小程序实现导航功能的操作步骤

    这篇文章主要给大家介绍了关于微信小程序实现导航功能的操作步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • EMUI11上手体验 新颜值/新功能/新体验

    EMUI11值得升级吗?好不好用?下面小编带来EMUI11上手体验,一起来看看手机鸿蒙OS的提前预演...2020-12-08