本篇文章介绍的内容是php常用函数封装 ,现在分享给大家,有需要的朋友可以参考一下
<?php
/**
* 获取来访者的真实ip
*/
function getrealip() {
static $realip = null;
if($realip !== null) {
return $realip;
}
if(getenv('remote_addr')) {
$realip = getenv('remote_addr');
} else if(getenv('http_client_ip')) {
$realip = getenv('http_client_ip');
} else if (getenv('http_x_froward_for')) {
$realip = getenv('http_x_froward_for');
}
return $realip;
}
/**
* 生成随机字符串
* @param int $num 生成的随机字符串的个数
* @return str 生成的随机字符串
* echo randstr();
*/
function randstr($num=6) {
$str = str_shuffle('abcedfghjkmnpqrstuvwxyzabcedfghjkmnpqrstuvwxyz23456789');
return substr($str, 0 , $num);
}
/**
* 创建目录 root.'/upload/2015/01/25/qwefas.jpg'
*/
function createdir() {
$path = '/upload/'.date('y/m/d');
$fpath = root . $path;
if(is_dir($fpath) || mkdir($fpath , 0777 , true)) {
return $path;
} else {
return false;
}
}
/**
* 获取文件后缀
* @param str $filename 文件名
* @return str 文件的后缀名,且带点.
*/
function getext($filename) {
return strrchr($filename, '.');
}
/**
* 生成缩略图
*
* @param str $oimg /upload/2016/01/25/asdfed.jpg
* @param int $sw 生成缩略图的宽
* @param int $sh 生成缩略图的高
* @return str 生成缩略图的路径 /upload/2016/01/25/asdfed.png
*/
function makethumb($oimg , $sw=200 , $sh = 200) {
//缩略图存放的路径的名称
$simg = dirname($oimg) . '/' . randstr() . '.png';
//获取大图和缩略图的绝对路径
$opath = root . $oimg;//原图的绝对路径
$spath = root . $simg;//最终生成的小图
//创建小画布
$spic = imagecreatetruecolor($sw, $sh);
//创建白色
$white = imagecolorallocate($spic, 255, 255, 255);
imagefill($spic, 0, 0, $white);
//获取大图信息
list($bw , $bh ,$btype) = getimagesize($opath);
//1 = gif,2 = jpg,3 = png,4 = swf,5 = psd,6 = bmp,
//7 = tiff(intel byte order),8 = tiff(motorola byte order),9 = jpc,10 = jp2,
//11 = jpx,12 = jb2,13 = swc,14 = iff,15 = wbmp,16 = xbm
$map = array(
1=>'imagecreatefromgif',
2=>'imagecreatefromjpeg',
3=>'imagecreatefrompng',
15=>'imagecreatefromwbmp'
);
if(!isset($map[$btype])) {
return false;
}
//imagecreatefromjpeg(filename)
$opic = $map[$btype]($opath);//大图资源
//计算缩略比
$rate = min($sw/$bw , $sh/$bh);
$zw = $bw * $rate;//最终返回的小图宽
$zh = $bh * $rate;//最终返回的缩略小图高
//imagecopyresampled(dst_image, src_image, dst_x, dst_y,
//src_x, src_y, dst_w, dst_h, src_w, src_h)
//echo $rate , '<br>' , $zw , '<br>' , $zh ;exit();
//拷贝图像并修改大小
//imagecopyresampled($spic, $opic, 0, 0, 0, 0, $zw, $zh, $bw, $bh);
imagecopyresampled($spic, $opic, ($sw-$zw)/2, ($sh-$zh)/2, 0, 0, $zw, $zh, $bw, $bh);
//输出/保存图形
imagepng($spic , $spath);
//销毁画布(关闭画板)
imagedestroy($spic);
imagedestroy($opic);
return $simg;
}
/**
* 转义字符串{ 对post,get,cookie数组进行转义 }
* @param $arr
* @return mixed
*/
function _addslashes($arr){
foreach ($arr as $k=>$v){
if(is_string($v)){
$arr[$k] = addslashes($v);
}elseif(is_array($v)){
$arr[$k] = _addslashes($v);
}
}
return $arr;
}
相关推荐:
004-php图片上传实例
005-php获取来访者的真实ip
以上就是006-php常用函数封装 的详细内容。