文件类
获取某个tp根目录下面的某个目录
//获取uploads 文件夹路径
function uploads_path(){
return dirname(__DIR__).DIRECTORY_SEPARATOR.‘uploads/‘;
}
删除某个目录下的文件
/**
* 删除某个目录下的文件
*
* 主要用来删除上传文件的临时文件
*/
function deleteFile($path){
//如果是目录则继续
if(is_dir($path)){
//扫描一个文件夹内的所有文件夹和文件并返回数组
$p = scandir($path);
foreach($p as $val){
//排除目录中的.和..
if($val !="." && $val !=".."){
//如果是目录则递归子目录,继续操作
if(is_dir($path.$val)){
//子目录中操作删除文件夹和文件
deleteFile($path.$val.‘/‘);
//目录清空后删除空文件夹
@rmdir($path.$val.‘/‘);
}else{
//如果是文件直接删除
unlink($path.$val);
}
}
}
}
}
读取文件夹下所有文件
/**
* 读取文件夹下所有文件
* @param $folder
* @return mixed
*/
function scanfiles($dir){
$arr = array();
//列出文件下的目录
$hander = scandir($dir);
//遍历文件夹下所有文文件
foreach ($hander as $v) {
//判断文件夹下是否还有文件夹需要遍历
if (is_dir($dir . ‘/‘ . $v) && $v != "." && $v != "..") {
//有二级文件夹
return false;
//递归调用
$arr[$v] = scanfiles($dir . ‘/‘ . $v);
}else{
//排除 "." " .."
if($v != "." && $v != ".."){
//文件存入
$arr[]=$v;
}
}
}
return $arr;
}
随机数
任意字符随机
/**
* 随机生成id,默认10位,不要O,o,0
* @param integer $length 生成id的位数
* @return string 生成的随机id
*/
function getRandom($length = 10){
// 密码字符集,可任意添加你需要的字符
//$chars = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789‘;
$chars = ‘ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijklmnpqrstuvwxyz123456789‘;
$str = "";
for ( $i = 0; $i < $length; $i++ ){
$str .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}
return $str ;
}
随机验证码
/**
* @param int $len 生成随机数长度,默认为6
* @return string
*/
//随机数
function getRandom($length = 6) {
//取10的长度减1次方的值,例:length为6 10的5次方 100000
$min = pow(10 , ($length - 1));
//取10的长度次方的值,例:length为6 10的6次方减1 999999
$max = pow(10, $length) - 1;
//获取并返回该范围的数
return mt_rand($min, $max);
}
字符串类
将id分割为2位一组的数组
/**
* 将id分割为2位一组的数组
* @param [type] $str 要分割的字符串
* @return array
*/
function stringToArray($str = null){
if($str === null){
return false;
}
$arr = array();
for($i = 0, $j = 0; $i < strlen($str); $i+=2,$j++){
$arr[$j] = substr($str,$i,2);
}
return $arr;
}
zip压缩与解压
压缩
/**
* 压缩文件
* @param array $files 待压缩文件 array(‘d:/test/1.txt‘,‘d:/test/2.jpg‘);【文件地址为绝对路径】
* @param string $filePath 输出文件路径 【绝对文件地址】 如 d:/test/new.zip
* @return string|bool
*/
function zip($files, $filePath)
{
//检查参数
if (empty($files) || empty($filePath)) {
return false;
}
//压缩文件
$zip = new ZipArchive();
$zip->open($filePath, ZipArchive::CREATE);
foreach ($files as $key => $file) {
//检查文件是否存在
if (!file_exists($file)) {
return false;
}
$zip->addFile($file, basename($file));
}
$zip->close();
return true;
}
解压
/**
* zip解压方法
* @param string $filePath 压缩包所在地址 【绝对文件地址】d:/test/123.zip
* @param string $path 解压路径 【绝对文件目录路径】d:/test
* @return bool
*/
function unzip($filePath, $path)
{
if (empty($path) || empty($filePath)) {
return false;
}
$zip = new ZipArchive();
if ($zip->open($filePath) === true) {
$zip->extractTo($path);
$zip->close();
return true;
} else {
return false;
}
}