公用函数,公用类,比较常见的手段。
不论客户端,还是php 的,请大家贴一下,谢谢。

解决方案 »

  1.   

    <?php
    echo $str;
    ?>
      

  2.   


    function CS_authcode() {
    session_start();
    //生成验证码图片
    Header("Content-type: image/PNG");
    srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用
    //session_start();//将随机数存入session中
    $_SESSION['authnum']=""; $authnum = "";
    $im = imagecreate(52,22) or die("Cant's initialize new GD image stream!");  //制定图片背景大小
    $red = ImageColorAllocate($im, 0,0,0); //设定三种颜色
    $white = ImageColorAllocate($im, 255,255,255);
    $gray = ImageColorAllocate($im, 200,200,200);
    //imagefill($im,0,0,$gray); //采用区域填充法,设定(0,0)
    imagefill($im,0,0,$white);//ed
    //生成数字和字母混合的验证码方法
    $ychar="1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";
    $list=explode(",",$ychar);
    for($i=0;$i<4;$i++){
    $randnum=rand(0,33);
    $authnum.=$list[$randnum];//ed 加入一个空格
    }
    //while(($authnum=rand()%100000)<10000); //生成随机的四位数
    //将四位整数验证码绘入图片
    $_SESSION['authnum']=$authnum;
    //int imagestring(resource image,int font,int x,int y,string s, int col)
    imagestring($im, 5, 10, 3, $authnum, $red);
    //用col颜色将字符串s画到image所代表的图像的x,y座标处(图像的左上角为0,0)。
    //如果 font 是 1,2,3,4 或 5,则使用内置字体

    for($i=0;$i<400;$i++){ //加入干扰象素 {
    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    // imagesetpixel($im, rand()%90 , rand()%30 , $randcolor);
    imagesetpixel($im, rand()%90 , rand()%30 , $gray);
    }
    ImagePNG($im);
    ImageDestroy($im);
    exit();
    }日期时间相关/**
     * 返回给指定的日期添加天数后的日期
     *
     * @param string $date 被添加的日期
     * @param int $addDay 添加的天数
     * @return string
     */
    function dateAdd($date, $addDay){
       $parts = explode(' ', $date);
       $date = $parts[0];
       $time = $parts[1];
       $ymd = explode('-', $date);
       $hms = explode(':', $time);
       $year = $ymd[0];
       $month = $ymd[1];
       $day = $ymd[2];
       $hour = $hms[0];
       $minute = $hms[1];
       $second = $hms[2];
       $day = $day+$addDay;  
       if($month=='1' || $month=='3' || $month=='5' || $month=='7' || $month=='8' || $month=='10' || $month=='12'){
          if($day>31){
             $day = $day - 31;
             $month++;
          }
       }
       if($month=='4' || $month=='6' || $month=='9' || $month=='11'){
          if($day>30){
             $day = $day - 30;
             $month++;
          }
       }
       if($month=='2'){
          if(checkRun($year)){
              //Feb has 29 days in leap year
             if($day>29){
                $day = $day - 29;
                $month++;
             }
          }
          else{
             if($day>28){
                $day = $day - 28;
                $month++;
             }
          }
       }
       if($month==13){
          $month = 1;
          $year++;
       }
       if(strlen($month)==1){$month = "0".$month;}
       if(strlen($day)==1){$day = "0".$day;}
       return $year . "-" . $month . "-" . $day;
    }/**
     * 验证是否是润年
     *
     * @param int $year 年份
     * @return boolean 如果是则返回True,否则返回False
     */
    function checkRun($year){
       if($year%4==0 && ($year%100!=0 || $year%400==0) )
          return true;
       else
          return false;
    }/**
     * 将时间转化成秒
     * @param string $time
     */
    function time_to_second($time) {
    if (is_time($time)) {
    $array_time = explode(':', $time);
    return $array_time[0]*3600+$array_time[1]*60+$array_time[2];
    } else {
    return 0;
    }
    }/**
     * 将时间转化为unix时间戳
     *
     * @param string $date
     * @return int 如果转化成功则返回unix时间戳,否则返回-1
     */
    function format_date_to_unix($date){
    $date = trim($date);
    $regexp = '^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})( ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}))?$';
    if(ereg($regexp,$date,$regs)){
    return mktime($regs[5],$regs[6],$regs[7],$regs[2],$regs[3],$regs[1]);
    }else{
    return -1;
    }
    }/**
     * Calculation of the time the auction closes
     * @param int $begin unix timestamp
     * @param int $end unix timestamp
     * @return string The time the auction closes
     */
    function date_between($begin, $end = 0, $between = FALSE)
    {
    if ($end === 0) $end = time();
    if ($between === FALSE) $between = $begin - $end;
    if($between < 0) return '';
    if ($between < 60)
    {
    return $between.'秒';
    }
    else
    {
    $second  = $between % 60;
    $between = $between / 60;
    if ($between < 60)
    {
    return (int)$between."分".$second."秒";
    }
    else if($between === 60)
    {
    return "1小时";
    }
    else
    {
    $minute = $between % 60;
    $between = ($between - $minute) / 60;
    if ($between < 24)
    {
    $string = (int)$between."小时";
    if ($minute > 0)
    {
    $string .= $minute."分";
    }
    return $string;
    }
    else if($between === 24)
    {
    return "1天";
    }
    else
    {
    $hour  = $between % 24;
    $between = $between - $hour;
    $day  = $between / 24;
    $string = (int)$day."天";
    if ($hour > 0)
    {
    $string .= $hour."小时";
    }
    if ($minute > 0)
    {
    $string .= $minute."分";
    }
    return $string;
    }
    }
    }
    }
      

  3.   


    /**
     * 获取真实的IP地址
     */
    function CS_get_ip(){
    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;
    }/**
     * 获取来访地址
     * 
     * @return string 如果来访地址存在,则返回来访地址,否则返回空
     */
    function CS_get_referer() {
    return isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != '' ? $_SERVER['HTTP_REFERER'] : '';
    }/**
     * *取得下载页面的地址
     *
     * @param unknown_type $url
     */
    function CS_file_get_contents($url)
    {
    $t = 5;
    $cont = "";
    while ($t-- >0)
    {
    $time = 5-$t;
    //echo "第$time 次下载 $url";
    $cont = file_get_contents($url);
    if($cont)
    {
    //echo "下载成功";
    break;
    }
    }
    return $cont;
    }/**
     * 取得当前页面的完整地址
     */
    function CS_get_current_url() {
    return 'http://'.$_SERVER[ 'HTTP_HOST'].$_SERVER[ 'REQUEST_URI'];
    }/**
     * 取得手机型号信息
     * @param string or array $where 查询的条件
     */
    function CS_get_text($key) {    static $STATIC_Text_INFO = array();
    if (!isset($STATIC_Text_INFO[$key])) {
    $CI = &get_instance();
    //读数据库模式.
    // $CI->load->model('Text_model');
     //   $text = $CI->Text_model->get_info_by_title($key); //取得指定的值.

    $CI->config->load("cfg_text");
    //$CI->config->load('cfg_text');
    $val = $CI->config->item($key);
    if( !$val ) $val = "<hr/><font color = 'red'>尚无-[$key]-项配置文字,请及时添加相应的内容</font><hr/><br>";
        $STATIC_Text_INFO[$key] = $val;
     }
    return $STATIC_Text_INFO[$key];
    }
    /**
     * 判断是否是post提交
     *
     */
    function CS_is_post() {
    return strtolower($_SERVER['REQUEST_METHOD']) == 'post';
    }/**
     * 判断是否是GET提交
     *
     * @return boolean 如果是get则返回true
     */
    function CS_is_get() {
    return strtolower($_SERVER['REQUEST_METHOD']) == 'get';
    }/**
     * 跳转到上一页,如果指定了$location并且没有来路时,则跳转到指定页
     *
     * @param string $location 指定跳转的页面
     */
    function CS_header_referer($location = '') {
    if ($_SERVER['HTTP_REFERER'] != '') {
    header('location:'.$_SERVER['HTTP_REFERER']);
    exit();
    } else if ($location != '') {
    redirect($location);
    }
    }function CS_log($str,$Path) {
    $fp=fopen($Path,"a+");
    if(is_array($str))
    {
    foreach($str as $key=>$val)
    {
      $tempstr=$key."=>".$val."\n";
    fwrite($fp,$tempstr);
    }
    }else{
    fwrite($fp,$str."\n");
    }
    fclose($fp);
    }/**
     * 验证文件是否是图片
     *
     * @param string $path 文件路径
     * @return boolean 如果是则返回True,否则返回False
     */
    function CS_check_img($path) {
    $extension  = CS_get_extension($path);
    return $extension == 'jpg' || $extension == 'png' || $extension == 'jpeg' || $extension == 'gif';
    }
      

  4.   

    /**
     * 取得文件的扩展名
     *
     * @param string $path 文件路径
     * @return string
     */
    function CS_get_extension($path) {
    $path_parts = pathinfo($path);
    $extension  = strtolower($path_parts['extension']);
    return $extension;
    }/**
     * 输入浏览器信息标头
     * @param string $content_type[text/html] 网页输出类型
     * @param string $charset[utf-8] 网页输入编码
     */
    function CS_header($content_type = 'text/html', $charset = 'utf-8') {
    header('Content-type:'.$content_type.'; charset='.$charset);
    if(function_exists("date_default_timezone_set")){
    // date_default_timezone_set('asia/shanghai');
    }
    }/**
     * 输出JS报错提示,并且跳转页面
     * @param string $message 提示语句
     * @param string $location 跳转页面
     * @param string $title 提示框的标题
     */
    function CS_js_alert($message, $location, $title = '提示信息', $js_scope = '') {
    CS_header(); //发送浏览器信息头
    echo '<script type="text/javascript">'.$js_scope.'LD_alert("'.$title.'", "'.$message.'");location.href="'.$location.'"</script>';
    exit();
    }/**
     * 取得对应表名的模型名称
     * 
     * @param string $table 表名
     * @return string 模型名称
     */
    function CS_get_model_name($table) {
    return ucfirst(strtolower($table.'_model'));
    }/**
     * 获取手机号对应的服务商
     *
     * @param string $mobile
     * @return int [0=>移动, 1=>联通, 2=>小灵通, -1=>不可识别]
     */
    function CS_get_mobile_facilitator($mobile) {
    $channel_regex_map = array(
    0 => '/^0?(13[0-9]|15[0|1|3|6|8|9])\d{8}$/', // 移动
    1 => '/^0?1(3[0-2]|5[56]|8[56])\d{8}$/', // 联通
    2 => '/^(0[1-9][0-9]{9,10})$/', // 小灵通
    );
    foreach ($channel_regex_map as $channel => $regex) {
    if (preg_match($regex, $mobile, $match)) {
    return $channel;
    }
    }
    return -1; // 不可识别的类型
    }/**
     * 动态执行数据库中一个字段的值,并将返回值赋给该字段
     * 
     * @param mixed $var 一行[一个对象]或多行数据[一个数组]
     * @param array $fields 字段名称(可以是多个)
     */
    function CS_eval_fields($var, $fields) {
    if (is_object($var)) {
    foreach ($fields as $field) {
    if (isset($var->$field) && $var->$field != '') $var->{$field.'_php'} = @eval($var->$field); //如果字段存在
    }
    } else if (is_array($var)) {
    foreach ($var as $row) { //循环每一行
    foreach ($fields as $field) {
    if (isset($row->$field) && $row->$field != '') $row->{$field.'_php'} = @eval($row->$field); //如果字段存在
    }
    }
    }
    return $var;
    }/**
     * 反序列化数据库中一个字段的值,并将返回值赋给该字段
     * 
     * @param mixed $var 一行[一个对象]或多行数据[一个数组]
     * @param array $fields 字段名称(可以是多个)
     */
    function CS_unserialize_fields($var, $fields) {
    if (is_object($var)) {
    foreach ($fields as $field) {
    if (isset($var->$field) && $var->$field != '') $var->{$field.'_php'} = @unserialize($var->$field); //如果字段存在
    }
    } else if (is_array($var)) {
    foreach ($var as $row) { //循环每一行
    foreach ($fields as $field) {
    if (isset($row->$field) && $row->$field != '') $row->{$field.'_php'} = @unserialize($row->$field); //如果字段存在
    }
    }
    }
    return $var;
    }/**
     * 将一个数组格式化为GET传参格式
     * @param array $params 待格式化的数组,数组的键值是参数名,数组的值是参数值
     * @return string 如果$params不是数组或是一个空数组,那么返回空,否则返回格式化后的字符串
     */
    function CS_to_query_string($params) {
    if (is_array($params) && sizeof($params) > 0) { //如果参数是数组,并且不是一个空数组
    $new_params = array();
    foreach ($params as $key => $value) {
    array_push($new_params, $key.'='.rawurlencode($value));
    }
    return join('&', $new_params);
    } else {
    return '';
    }
    }/**
     * 格式化数字
     * @param int $number 数字
     * @return  格式化的数字。
     * */
    function CS_numeric_format($number){
    return number_format($number,1,'.','');
    }/**
     * 选择颜色
     * */
    function CS_select_color($num){
    if($num > 0){
    $color = '#999999';
    }else{
    $color = '#996600';
    }
    return $color;
    }/**
     * 计算百分比
     * @param int $input 输入量
     * @param int $pass 同步量
     * @return 百分比
     * */
    function CS_counting_per($input,$pass){
    if($input <1 && $pass > $input){
    return '100%';
    }
    if($pass>0 && $input>0){
    return CS_numeric_format((($pass/$input)*100))."%";  //百分比
    }
    if($input < 1 && $pass < 1){
     return '&nbsp;';
    }
    return '&nbsp;';
    }/**
     * 利用CI中方法,清除特殊数据 (主要是对$this->input->xss_clean()方法的扩展)
     */
    function CS_xss_clean($var) {
    if (is_array($var)) {
    foreach ($var as $key => $value) {
    $var[$key] = CS_xss_clean($value);
    }
    } else {
    $CI = & get_instance();
    $var = $CI->input->xss_clean($var);
    }
    return $var;
    }/**
     * 设置浏览器的缓存时间
     * 
     * @param string $interval 缓存时间间隔
     * @return NULL
     */
    function cache_browser($interval = 60)   
    {   
        $now = time();   
        $pretty_lmtime = gmdate('D, d M Y H:i:s', $now) . ' GMT';   
        $pretty_extime = gmdate('D, d M Y H:i:s', $now + $interval) . ' GMT';   
        // 向后兼容HTTP/1.0   
        header("Last Modified: $pretty_lmtime");   
        header("Expires: $pretty_extime");   
        // 支持HTTP/1.1   
        header("Cache-Control: private,max-age=$interval,s-maxage=0");   
    }
    /**
     * 设置数据置查询的where 
     * 
     * @param string $where 查询条件,多态表现.可能是数组.
     * @return string 模型名称
     */
    function CS_set_where($where) {
        $CI = &get_instance();
    if (is_array($where)) { //当条件是数组的时候
    foreach ($where as $key => $value) { //循环条件
    //当元素是数组或元素是字符串并且元素的键名是数字
    if (is_array($value) || (is_string($value) && is_numeric($key))) $CI->db->where($value);
    //元素是字符串并且元素的键名不是数字
    else if (is_string($value) && !is_numeric($key)) $CI->db->where($key, $value);
    }
    } else if (is_string($where)) {
    $CI->db->where($where);
    }
    }
    /**
     * BREADCRUMB   导航条面包屑
     * 
     * @param string $array
     * @return no return. 
     */
    function bread_crumb($array)
    { $i = 0;
    foreach($array as $key=>$val)
    {
    if($i) echo ">>";$i++;
    $url = $val["url"];
    $title = $val["title"];
    echo "<a href = '$url'>$title</a>";
    }

    }
    /**
     * *创建文件夹
     *
     * @param unknown_type $dir
     */
    function CS_mkdir($dir) {
    if (!is_dir($dir)) {
    $temp = explode('/', $dir);
    $cur_dir = '';
    for ($i = 0; $i < count($temp); $i++) {
    $cur_dir .= $temp[$i] . '/';
    if (!is_dir($cur_dir)) {
    @ mkdir($cur_dir, 0777);
    @ fopen("$cur_dir/index.htm", "a");
    }
    }
    }
    }//验证地址是否为图片
    function CS_is_pic($url)
    {  $pic_arr = array("jpg","jpeg","png","gif");
      
      $pinfo = pathinfo($url);
      $ext_name = $pinfo["extension"];
      $ext_name = strtolower($ext_name) ;
      if(in_array($ext_name,$pic_arr))
      {
       return true;
      }
      else {
        return false;
      }
    }/**
     * 预格式化输出数组 
     * 
     * @param string $array
     * @return no return.
     */
    function pr($array)
    {
    print("<pre>");
    print_r($array);
    print("</pre>");
    }/**
     * * 将指定表格的指定健名和值名称生成配置文件,并写入到指定文件中.
     * @param char $table_name
     * @param char $key_name
     * @param char $val_name
     * @param char $cfg_var_name
     * @param char $dest_path
     */
    function CS_mk_cfg($table_name,$key_name,$val_name,$cfg_var_name ='cfg',$dest_file)
    {
    $str_config = "<?php\n";  $CI = &get_instance();
    $CI->db->from($table_name);  //设置查询表格
      $CI->db->select($key_name.",".$val_name);  //设置查询字段.
      $CI->load->helper('file');
      $query = $CI->db->get();
     
       foreach($query->result() as $key=>$item)
      {
      $info = str_replace("'","\"",$item->$val_name);
      $str_config .= '$config[\''.$item->$key_name.'\']=\''.$info.'\';';
      $str_config .= "\n";
       }
     
        $dest_path_dir = $_SERVER['DOCUMENT_ROOT']."/system/application/config/";
        $dest_file = $dest_path_dir.$dest_file.".php";    write_file($dest_file, $str_config, 'w+');
    }/**
     * 删除指应对象里面的 upload/ 以gif|jpg|jpeg|zip|swf|doc 结尾的文件。
     *
     * @param object $row
     */
    function delete_file($row)
    {
    if(sizeof($row)){
    foreach($row as $val)
    {
    //查找里面相应的文件
    preg_match_all("/(upload[^\.]*\.(gif|jpg|jpeg|zip|swf|doc))/i",$val,$matches);
        if(sizeof($matches[0]))
    {
    foreach($matches[0] as $file_piece)
    {
    if(file_exists($_SERVER['DOCUMENT_ROOT']."/".$file_piece))
    {
    // unlink($_SERVER['DOCUMENT_ROOT']."/".$file_piece) or die("file");
    }
    }
    }
    }
    }
    }
    /**
     * * 将http下的图片文件指向到下载到本地,并对内容进行替换。
     *
     */
    function img2local($arr)
    {
    if(is_array($arr) and sizeof($arr))
    {
    foreach($arr as $key => $val)
    {

        preg_match_all("/(http:\/\/(?!.*http.*)[^<]*\.(jpg|gif|jpeg|png))/iU",$val,$matches);

    if(sizeof($matches[0]))
    {
    foreach ($matches[0] as $val_img)
    {
    $old_file_name = $val_img;
    $img_info = pathinfo($old_file_name);

    //创建临时文件夹.
    $temp_dir = "upload/down/".date("y-m-d");
    if(!is_dir($temp_dir)) CS_mkdir($temp_dir);

    //生成随机文件,并将远程文件写入到相应的目录下去.
    $myPath= "upload/down/".date("y-m-d")."/".date("His").rand(0,1000).".".$img_info["extension"];
    $file=$old_file_name;
    $data=file_get_contents($file);
    fwrite(fopen($myPath,"wb+"),$data);

    //对数组的内容进行替换
    $arr[$key] = str_ireplace($val_img,"/".$myPath,$arr[$key]);

    }
    }
    }
    } return $arr;
    }
      

  5.   

    有空看看我的blog http://blog.csdn.net/mu_rain 里面堆了很多代码。