常用函数

  • php实现网站运行时间

    1 后台定义接口// 统计站点运行时间,格式 年 月 日 时 分 秒public function getBuildTime(){ // 设置时区 date_default_timezone_set('Asia/Shanghai'); // 在下面按格式输入本站建立的时间 $site_create_time = strtotime('2023-07-29 20:15:00'); $time = time() - $site_create_time; if(is_numeric($time)){ $value = array( "years" => 0, "days" => 0, "

  • 生成一个指定长度的随机字符串

    /** * 产生一个指定长度的随机字符串,并返回给用户 * @param type $len 产生字符串的长度 * @return string 随机字符串 */function genRandomString($len = 6){ $chars = array( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H

  • 格式化字节大小

    /** * 格式化字节大小 * @param number $size 字节数 * @param string $delimiter 数字和单位分隔符 * @return string 格式化后的带单位的大小 */function format_bytes($size, $delimiter = ''){ $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB'); for ($i = 0; $size >= 1024 && $i < 5; $i++) { $size /= 1024; } return round($size

  • PHP字符截取

    /** * 字符截取 * @param $string 需要截取的字符串 * @param $length 长度 * @param $dot */function str_cut($sourcestr, $length, $dot = '...'){ $returnstr = ''; $i = 0; $n = 0; $str_length = strlen($sourcestr); //字符串的字节数 while (($n < $length) && ($i <= $str_length)) { $temp_str = substr($sourcestr, $i,

  • PHP数组转字符串

    /** * 数组转换为字符串,主要用于把分隔符调整到第二个参数 * @param array $arr 要连接的数组 * @param string $glue 分割符 * @return string */function arr2str($arr, $glue = ','){ if (is_string($arr)) { return $arr; } return implode($glue, $arr);}

  • PHP字符串转数组

    /** * 字符串转换为数组,主要用于把分隔符调整到第二个参数 * @param string $str 要分割的字符串 * @param string $glue 分割符 * @return array */function str2arr($str, $glue = ','){ return explode($glue, $str);}

  • PHP密码加密算法

    if (!function_exists('password')) { /** * 密码加密算法 * @param $value 需要加密的值 * @param $type 加密类型,默认为md5 (md5, hash) * @return mixed */ function password($value) { $value = sha1('blog_') . md5($value) . md5('_encrypt') . sha1($value); return sha1($value); }}

  • 判断pc和手机端

    // 判断pc和手机端function ismobile(){ $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : ''; $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT']))){ $mobile_brows

  • 获取用户浏览器类型

    // 获取用户浏览器类型function getBrowser(){ $agent = $_SERVER["HTTP_USER_AGENT"]; if(strpos($agent,'MSIE') !==false || strpos($agent,'rv:11.0')){ //ie11判断 return "ie"; }else if(strpos($agent,'Firefox')!==false){ return "firefox"; }else if(strpos($agent,'Chrome')!==false){ return "chrome"; }else if(strpos($ag

  • 获取客户端IP

    // 获取IPfunction getIp(){ $ip = false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if($ip){ array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips);

  • 字符串过滤 , 截取替换敏感字符

    /** * 字符串过滤 , 截取替换敏感字符 * @ param $string * @ return mixed */function safe_replace($string) { if(empty($string)) { return $string; } $string = str_replace('%20','',$string); $string = str_replace('%27','',$string); $string = str_replace('%2527','',$string); $string = str_replace('*','',$string); $str

  • 生成一串随机字符串

    /** * 生成一串随机字符串 * @ param int $length 位数 * @ return string */function generate_str_rand( $length = 8 ) { // 密码字符集,可任意添加你需要的字符 $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $password = ''; for ( $i = 0; $i < $length; $i++ ){ // 这里提供两种字符获取方式 // 第一种是使用 substr 截取$chars中的任

  • 目录操作相关函数

    1 删除文件/** * 删除文件 * @ param string $filename 要删除的文件名称 * @ return bool 删除成功返回true,删除失败返回false */function delFile($filename){ if(file_exists($filename)){ return unlink($filename); } return false;}2 创建目录/** * 作用:创建目录, 存在不创建,不存在就创建 * @ param string $path 路径 * @ return bool */function createDir($path){ //

  • 加密函数和解密函数

    1 加密函数/** * 作用:加密函数 * @ param string $txt 需要加密的字符串 * @ param string $key 密钥 * @ return string 返回加密结果 * MD5_KEY 是自己在配置文件中定义的KEY */function encrypt($txt, $key = ''){ if(empty($txt)){ return $txt; } if(empty($key)){ $key = md5(MD5_KEY); } $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01

  • 截取富文本中的其中一部分

    /** * 将富文本中文字截取其中的一部分 * @param $content * @return string */function html_substr_content($content,$length=100){ $content = htmlspecialchars_decode($content); //把一些预定义的 HTML 实体转换为字符 $content = str_replace(" ", "", $content); //将空格替换成空 $content = strip_tags($content); //函数剥去字符串中的 HTML、XML 以及 PHP 的标签,获取

  • 删除数组中的空数据

    function where_data($data){ foreach ($data as $k => $v) { if (empty($v) && $v !='0') { unset($data[$k]); } } return $data;}

  • 生成 n 位数的随机验证码

    function random($length = 6 , $numeric = 0) { PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000); if($numeric) { $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1)); } else { $hash = ''; $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz'; $max

  • 递归循环某目录下的子目录及文件并输出

    function tree($dir,$level=1){ $fh=opendir($dir);//打开目录 while($dirname=readdir($fh)){//循环读取当前目录下的子目录及文件 if($dirname == '.' || $dirname == '..'){ continue; } echo "|".str_repeat('-',$level).$dirname;//目录名或文件名,str_repeat("|-",$num);//把字符串重复指定的次数 echo '<br>'; if(is_dir($dir. '/' .$dirname)){//如果是目

  • php记录日志信息到文件中

    // 在测试代码时,需要了解代码执行情况,而这中执行时在后台运行的,前台无法知道是否运行正常,在这种情况下,我们一般用写日志的形式来调试代码。 function logResult($str='') { $fp = fopen("log.txt","a"); flock($fp, LOCK_EX) ; fwrite($fp,"执行日期:".strftime("%Y%m%d%H%M%S",time())."\n".$str."\n"); flock($fp, LOCK_UN); fclose($fp); } //函数logResult()记录执行时间,参数$str自定义,执行时会将运行日志写入到