php 开发常用的封装函数

/***********************************************************************
    * 返回多条数据记录
    * $sql SQL语句
***********************************************************************/
function getdata($sql)
{
    $result=mysql_query($sql);
    if($result)$count = mysql_num_rows($result);
    if(0 == $count){
        $data='';
    }else{
        for($i=0;$i<$count;$i++)
        {
            mysql_data_seek($result,$i);
            $data[$i] = mysql_fetch_assoc($result);
        }
    }
    return $data;
}

//  将一些字符转化成utf8格式    

function get_utf8_string($content) { 
      encoding = mb_detect_encoding($content, array('ASCII','UTF-8','GB2312','GBK','BIG5'));   
      return  mb_convert_encoding($content, 'utf-8', $encoding);
    }

/**
 * URL重定向
 * @param string $url 重定向的URL地址
 * @param integer $time 重定向的等待时间(秒)
 * @param string $msg 重定向前的提示信息
 * @return void
 */
function redirect($url, $time=0, $msg='') {
    //多行URL地址支持
    $url        = str_replace(array("\n", "\r"), '', $url);
    if (empty($msg))
        $msg    = "系统将在{$time}秒之后自动跳转到{$url}!";
    if (!headers_sent()) {
        // redirect
        if (0 === $time) {
            header('Location: ' . $url);
        } else {
            header("refresh:{$time};url={$url}");
            echo($msg);
        }
        exit();
    } else {
        $str    = "<meta http-equiv='Refresh' content='{$time};URL={$url}'>";
        if ($time != 0)
            $str .= $msg;
        exit($str);
    }
}


/**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
 * @param string $label 标签 默认为空
 * @param boolean $strict 是否严谨 默认为true
 * @return void|string
 */
function dump($var, $echo=true, $label=null, $strict=true) {
    $label = ($label === null) ? '' : rtrim($label) . ' ';
    if (!$strict) {
        if (ini_get('html_errors')) {
            $output = print_r($var, true);
            $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
        } else {
            $output = $label . print_r($var, true);
        }
    } else {
        ob_start();
        var_dump($var);
        $output = ob_get_clean();
        if (!extension_loaded('xdebug')) {
            $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
            $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
        }
    }
    if ($echo) {
        echo($output);
        return null;
    }else
        return $output;
}

//遍历文件夹里的图片
function getfiles($path){
   if(!is_dir($path)) return;
   $handle  = opendir($path);
   $files = array();
   while(false !== ($file = readdir($handle))){         
    if($file != '.' && $file!='..'){
     $path2= $path.'/'.$file;
     if(is_dir($path2)){
     getfiles($path2);         
     }else{
        if(preg_match("/\.(gif|jpeg|jpg|png|bmp)$/i", $file)){
        $files[] = $path.'/'.$file;
     }
     }         
    }
   }
   return $files;
}

// 处理时间函数
date_default_timezone_set('PRC');
function maktimes($date)
{
    $time = strtotime($date);
    $t=time()-$time;
    $f=array(
        '31536000'=> '年',
        '2592000' => '个月',
        '604800' => '星期',
        '86400' => '天',
        '3600' => '小时',
        '60' => '分钟',
        '1' => '秒'
    );
    foreach ($f as $k=>$v){
        if (0 !=$c=floor($t/(int)$k)){
            return $c.$v.'前';
        }
    }
}
echo maktimes('2013-06-07 08:22:48');

/************************************************************************
创建多层目录
************************************************************************/
function mkdirs($dir, $mode = 0777)
{
    if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
    if (!mkdirs(dirname($dir), $mode)) return FALSE;
    return @mkdir($dir, $mode);
}


/******************************************************************
保存远程图片正确方法
*******************************************************************/
function getPicture($url,$pictureName){
    if ($url == "") return false;
    //获取图片的扩展名
    $info = getimagesize($url);
    $mime = $info['mime'];
    $type = substr(strrchr($mime,'/'), 1);
    //不同的图片类型选择不同的图片生成和保存函数
    switch($type){
        case 'jpeg':
            $img_create_func = 'imagecreatefromjpeg';
            $img_save_func = 'imagejpeg';
            $new_img_ext = 'jpg';
            break;
        case 'png':
            $img_create_func = 'imagecreatefrompng';
            $img_save_func = 'imagepng';
            $new_img_ext = 'png';
            break;
        case 'bmp':
            $img_create_func = 'imagecreatefrombmp';
            $img_save_func = 'imagebmp';
            $new_img_ext = 'bmp';
            break;
        case 'gif':
            $img_create_func = 'imagecreatefromgif';
            $img_save_func = 'imagegif';
            $new_img_ext = 'gif';
            break;
        case 'vnd.wap.wbmp':
            $img_create_func = 'imagecreatefromwbmp';
            $img_save_func = 'imagewbmp';
            $new_img_ext = 'bmp';
            break;
        case 'xbm':
            $img_create_func = 'imagecreatefromxbm';
            $img_save_func = 'imagexbm';
            $new_img_ext = 'xbm';
            break;
        default:
            $img_create_func = 'imagecreatefromjpeg';
            $img_save_func = 'imagejpeg';
            $new_img_ext = 'jpg';    
    }
    if ($pictureName == ""){
        $pictureName = time().".{$new_img_ext}";
    }else{
        $pictureName = $pictureName.".{$new_img_ext}";
    }
    $src_im = $img_create_func($url); //由url创建新图片
    $img_save_func($src_im, $pictureName); //输出文件到文件
    return $pictureName;
}

保存远程图片
function save_picture($picture_url, $dir){
      $img_source = @file_get_contents($picture_url);
      $picture_name = basename($picture_url);
      $fileimg = $dir.$picture_name;
      if(@file_get_contents($fileimg)){
            echo '文件夹里已经存在这张图片';
      }else{
            if(file_put_contents($fileimg, $img_source)){
              echo '文件保存成功';
            }
            else{
                 echo '文件保存失败';
                  file_put_contents('./jjj.txt', $picture_name."   文件保存失败\r\n",FILE_APPEND);
            }
      }
}

转载于:https://my.oschina.net/shunshun/blog/125987

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值