实用函数2


Posted in PHP onNovember 08, 2007

1、产生随机字符串函数

function random($length) {  
$hash = @#@#;  
$chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#;  
$max = strlen($chars) - 1;  
mt_srand((double)microtime() * 1000000);  
for($i = 0; $i < $length; $i++) {  
  $hash .= $chars[mt_rand(0, $max)];  
}  
return $hash;  
} 

2、截取一定长度的字符串(该函数对GB2312使用有效)
function Wordscut($string, $length ,$sss=0) {  
if(strlen($string) > $length) {  
               if($sss){  
                      $length=$length - 3;  
                      $addstr=@# ...@#;  
                }  
  for($i = 0; $i < $length; $i++) {  
   if(ord($string[$i]) > 127) {  
    $wordscut .= $string[$i].$string[$i + 1];  
    $i++;  
   } else {  
    $wordscut .= $string[$i];  
   }  
  }  
  return $wordscut.$addstr;  
}  
return $string;  
} 

3、取得客户端IP地址
function GetIP(){  
             if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))  
                   $ip = getenv("HTTP_CLIENT_IP");  
             else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))  
                   $ip = getenv("HTTP_X_FORWARDED_FOR");  
             else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))  
                   $ip = getenv("REMOTE_ADDR");  
             else if (isset($_SERVER[@#REMOTE_ADDR@#]) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER[@#REMOTE_ADDR@#], "unknown"))  
                   $ip = $_SERVER[@#REMOTE_ADDR@#];  
             else  
                  $ip = "unknown";               return($ip);  
} 

4、判断邮箱地址
function checkEmail($inAddress)  
{  
return (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+",$inAddress));  
} 

5、分页(两个函数配合使用)
function getpage($sql,$page_size=20)  
{  
      global $page,$totalpage,$sums;  //out param  
      $page = $_GET["page"];  
      //$eachpage = $page_size;  
      $pagesql = strstr($sql," from ");  
      $pagesql = "select count(*) as ids ".$pagesql;  
      $result = mysql_query($pagesql);  
      if($rs = mysql_fetch_array($result)) $sums = $rs[0];  
      $totalpage = ceil($sums/$page_size);  
      if((!$page)($page<1)) $page=1;  
   $startpos = ($page-1)*$page_size;  
   $sql .=" limit $startpos,$page_size ";  
    return $sql;  
}  
function showbar($string="")  
{       
    global $page,$totalpage;  
$out="共<font ".$totalpage."color=@#red@#><b>".$totalpage."</b></font>页  ";  
    $linkNum =4;  
    $start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";  
    $end   = ($page+round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage;  
    $prestart=$start-1;  
    $nextend=$end+1;  
    if($page<>1)   
$out .= "<a href=@#?page=1&&".$string."@#title=第一页>第一页</a> ";  
    if($start>1)  
$out.="<a href=@#?page=".$prestart."@# title=上一页>..<<</a> ";  for($t=$start;$t<=$end;$t++)  
    {  
     $out .= ($page==$t) ? "<font [".$t."]color=@#red@#><b>[".$t."]</b></font> " : "<a $thref=@#?page=$t&&".$string."@#>$t</a> ";  
    }  
if($end<$totalpage)  
$out.="<a href=@#?page=".$nextend."&&".$string."@# title=下一页>>>..</a>";  
    if($page<>$totalpage)  
   $out .= " <a href=@#?page=".$totalpage."&&".$string."@# title=最后页>最后页</a>";  
   return $out;  
} 

6、获取新插入数据的ID
<?  
mysql_insert_id();  
?>
PHP 相关文章推荐
遭遇php的in_array低性能问题
Sep 17 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
php实现的双向队列类实例
Sep 24 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
php中session定期自动清理的方法
Nov 12 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
解决laravel5.4下的group by报错的问题
Oct 16 PHP
一个图形显示IP的PHP程序代码
Oct 19 #PHP
php在线生成ico文件的代码
Oct 09 #PHP
pw的一个放后门的方法分析
Oct 08 #PHP
使用 eAccelerator加速PHP代码的方法
Sep 30 #PHP
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 #PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 #PHP
一些常用的php简单命令代码集锦
Sep 24 #PHP
You might like
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
php 实现进制相互转换
2016/04/07 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
搭建vue开发环境
2018/07/19 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
Series和DataFrame使用简单入门
2019/11/13 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
HTML5的语法变化介绍
2013/08/13 HTML / CSS
人力资源经理自我评价
2014/01/04 职场文书
乡下人家教学反思
2014/02/01 职场文书
企业总经理职责
2014/02/02 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
家长写给老师的建议书
2014/03/13 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
中秋节慰问信
2015/02/15 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
实施意见格式范本
2015/06/05 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
快速学习Oracle触发器和游标
2021/06/30 Oracle
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers