PHP常用函数收集
2017-03-28 14:21
513 查看
1、出生日期转换成年龄
2、object转换成array
3、array转换成object
4、日期格式化
5、HTML格式编码转换
6、当前日期
7、多维数组排序
8、创建目录
9、删除目录
10、生成随机文件名
11、验证文件类型
12、解压缩压缩包
13、创建压缩包
14、复制文件夹
15、验证EMAIL格式
private function changeBirthdayToAge($birthday) { $interval = date(time() - strtotime($birthday)); return intval($interval / (365 * 60 * 60 * 24 )) + 1; }
2、object转换成array
function objectToArray($d) { if (is_object($d)) { // Gets the properties of the given object // with get_object_vars function $d = get_object_vars($d); } if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return array_map(__FUNCTION__, $d); } else { // Return array return $d; } }
3、array转换成object
function arrayToObject($d) { if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return (object) array_map(__FUNCTION__, $d); } else { // Return object return $d; } }
4、日期格式化
function microtime_format() { $time = number_format(microtime(true),8,'.',''); return explode(".", $time); }
5、HTML格式编码转换
function htmlspecialcharsx($str) { $s = htmlspecialchars($str); return str_replace('&#', '', $s); }
6、当前日期
function datetime() { return date("Y-m-d H:i:s"); }
7、多维数组排序
function multi_array_sort($multi_array, $sort_key, $sort=SORT_ASC){ if(is_array($multi_array)){ foreach ($multi_array as $row_array){ if(is_array($row_array)){ $key_array[] = $row_array[$sort_key]; } else { return false; } } } else { return false; } array_multisort($key_array, $sort, $multi_array); return $multi_array; }
8、创建目录
/** +---------------------------------------------------------- * 创建目录 +---------------------------------------------------------- * @access private * @param dir 目录地址 * @return boolean +---------------------------------------------------------- */ public function createDir($dir) { // 創建目錄 if (!is_dir($dir)) { return mkdir($dir, 0755, true); } return TRUE; }
9、删除目录
/** +---------------------------------------------------------- * 删除指定目录下的所有文件及目录 +---------------------------------------------------------- * @access public * @param dirName 目录路径 * @return boolean +---------------------------------------------------------- */ public function removeDir($dirName) { $handle = opendir("$dirName"); if (!$handle) return FALSE; while (false !== ($item = readdir($handle))) { if ($item != "." && $item != ".."){ if(is_dir("$dirName/$item")){ $this->removeDir("$dirName/$item"); }else{ unlink("$dirName/$item"); } } } closedir($handle); return rmdir($dirName); }
10、生成随机文件名
/** +---------------------------------------------------------- * 創建文件名 +---------------------------------------------------------- * @access private * @return filename +---------------------------------------------------------- */ public function generalFileName() { $now = microtime_format(); return date('YmdHis', $now[0]) . $now[1]; }
11、验证文件类型
/** +---------------------------------------------------------- * 驗證文件類型 +---------------------------------------------------------- * @access private * @param fileType string 文件後綴 * @return boolean +---------------------------------------------------------- */ public function checkFileType($fileType, $allowType) { return in_array(strtolower($fileType), $allowType); }
12、解压缩压缩包
/** +---------------------------------------------------------- * 解压缩zip包 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function unzip($path) { $zip = new ZipArchive(); if ($zip->open($path) === FALSE) return FALSE; $zip->extractTo(substr($path, 0, -4)); $zip->close(); return TRUE; }
/** +---------------------------------------------------------- * 解压缩zip包 linux 命令 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function unzip_linux($path) { $target = substr($path, 0, strlen($path)-4); exec("unzip -o $path -d $target"); return TRUE; }
13、创建压缩包
/** +---------------------------------------------------------- * 生成压缩包 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function createZip($dirName) { $zip = new ZipArchive(); $filename = $dirName . ".zip"; if(file_exists($filename)) unlink($filename); if (!$zip->open($filename, ZIPARCHIVE::CREATE)) return "create zip file failed"; $fileArr = $this->recursiveFiles($dirName); foreach ($fileArr as $key => $value) { $zip->addFile($value['path'], $value['parentFolder'] . $value['fileName']); } $zip->close(); return TRUE; } /** +---------------------------------------------------------- * 通过linux命令生成压缩包 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function createZip_linux($fileName, $directory, $dirName) { $zipFile = $fileName . ".zip"; $currPath = getcwd(); if (!chdir($dirName)) return FALSE; // 跳转到上传目录 exec("zip -q -m -r $zipFile *"); if (!chdir($currPath)) return FALSE; // 返回项目根目录 // 将生成的zip文件放到上一层目录 $source = $dirName . '/' . $zipFile; $target = C("PAGE_ROOT") . C('ACTIVE_VOLUME') . $directory . $zipFile; exec("mv -f $source $target"); return TRUE; }
14、复制文件夹
/** +---------------------------------------------------------- * 复制文件夹 +---------------------------------------------------------- * @access public * @param originalPath 原始文件路径 * @param destPath 目标文件路径 * @return boolean +---------------------------------------------------------- */ public function copyFolder($originalPath, $destPath) { if (is_dir($originalPath)) { $fileArray = array(); D("File")->createDir($destPath); $handle = opendir($originalPath); while (false !== ($file = readdir($handle))) // 循环读取目录中的文件名并赋值给$file { if ($file != "." && $file != "..") // 排除当前路径和前一路径 { if (is_dir($originalPath . "/" . $file)) { $this->copyFolder($originalPath . "/" . $file, $destPath . "/" . $file); // 获取子目录下的文件 } else { copy($originalPath . "/" . $file, $destPath . "/" . $file); } } } } else { copy( $originalPath, $destPath ); } }
15、验证EMAIL格式
public function validEmail($email) { if ($email) { if(filter_var($email, FILTER_VALIDATE_EMAIL)){ return TRUE; }else{ return FALSE; } } else { return FALSE; } }
相关文章推荐