PHP常用方法代码片断
来源:互联网 发布:2017利他林代购淘宝 编辑:程序博客网 时间:2024/05/22 03:41
判断是否为移动端浏览器
/** * 判断是否移动端浏览器 * @return boolean 返回true是移动端,返回false是电脑端 */function is_mobile_request() { $_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_browser ++; if ((isset ( $_SERVER ['HTTP_ACCEPT'] )) and (strpos ( strtolower ( $_SERVER ['HTTP_ACCEPT'] ), 'application/vnd.wap.xhtml+xml' ) !== false)) $mobile_browser ++; if (isset ( $_SERVER ['HTTP_X_WAP_PROFILE'] )) $mobile_browser ++; if (isset ( $_SERVER ['HTTP_PROFILE'] )) $mobile_browser ++; $mobile_ua = strtolower ( substr ( $_SERVER ['HTTP_USER_AGENT'], 0, 4 ) ); $mobile_agents = array ( 'w3c ', 'acs-', 'alav', 'alca', 'amoi', 'audi', 'avan', 'benq', 'bird', 'blac', 'blaz', 'brew', 'cell', 'cldc', 'cmd-', 'dang', 'doco', 'eric', 'hipt', 'inno', 'ipaq', 'java', 'jigs', 'kddi', 'keji', 'leno', 'lg-c', 'lg-d', 'lg-g', 'lge-', 'maui', 'maxo', 'midp', 'mits', 'mmef', 'mobi', 'mot-', 'moto', 'mwbp', 'nec-', 'newt', 'noki', 'oper', 'palm', 'pana', 'pant', 'phil', 'play', 'port', 'prox', 'qwap', 'sage', 'sams', 'sany', 'sch-', 'sec-', 'send', 'seri', 'sgh-', 'shar', 'sie-', 'siem', 'smal', 'smar', 'sony', 'sph-', 'symb', 't-mo', 'teli', 'tim-', 'tosh', 'tsm-', 'upg1', 'upsi', 'vk-v', 'voda', 'wap-', 'wapa', 'wapi', 'wapp', 'wapr', 'webc', 'winw', 'winw', 'xda', 'xda-' ); if (in_array ( $mobile_ua, $mobile_agents )) $mobile_browser ++; if (strpos ( strtolower ( $_SERVER ['ALL_HTTP'] ), 'operamini' ) !== false) $mobile_browser ++; // Pre-final check to reset everything if the user is on Windows if (strpos ( strtolower ( $_SERVER ['HTTP_USER_AGENT'] ), 'windows' ) !== false) $mobile_browser = 0; // But WP7 is also Windows, with a slightly different characteristic if (strpos ( strtolower ( $_SERVER ['HTTP_USER_AGENT'] ), 'windows phone' ) !== false) $mobile_browser ++; if ($mobile_browser > 0) return true; else return false;}/** * 判断是否微信浏览器 * @return boolean 返回true是微信,返回false不是微信 */function isWeixin() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { return true; } else { return false; }}
========================
根据需求自动裁剪图片(基于thinkphp)
/** * 输出图片。根据需求自动裁剪图片 * * @param unknown $file * @param number $width * @param number $height * @param string $def * @return unknown|mixed 使用例子:< img src="{:img('/wyzxqy/Tools/Upload/../../Upload/image/20150529/20150529103500_39141.jpg',90,90)}" /> */function img($file, $width = 200, $height = 200, $def = '') { $root=dirname( $_SERVER['DOCUMENT_ROOT']."/aa")."/" ; if (preg_match ( '/^http:\/\//', $file ) || preg_match ( '/^https:\/\//', $file )) { // 如果是远程文件 $virFloder = substr ( $_SERVER ['SCRIPT_NAME'], 0, strrpos ( $_SERVER ['SCRIPT_NAME'], '/' ) ); $basePath = $virFloder . '/Resource/img/temp/'; if (! is_readable ( $root . $basePath )) { // 判断文件夹是否存在,不存在就创建 is_file ( $root . $basePath ) or mkdir ( $root . $basePath, 0777, true ); // var_dump(mkdir ( $root.$basePath, 0777 )); } //下载远程图片 $disFile=$file; $fileName=md5($file).'.jpg'; $saveFile=$root.$basePath.$fileName; $file=$basePath.$fileName; //判断远程文件是否存在 if (! file_exists ( $root . $file )) { // 判断原文件是否存在,不存在直接返回。 $content = file_get_contents($disFile); file_put_contents($saveFile, $content); } } if(empty($file)){ return $def; } $realFile=$root.$file; //获得文件扩展名 $temp_arr = explode(".", $file); $file_ext = array_pop($temp_arr); $file_ext = trim($file_ext); $file_ext = strtolower($file_ext); $baseFile = basename ( $file ); // 找到文件名 $basePath = str_replace ( $baseFile, "", $file ) . "temp/"; // 找到目录 $baseFile = str_replace ( ".", "", $baseFile ); // 替换掉“.” $baseFile .= $width . "x" . $height . ".jpg"; if (! is_readable ( $root.$basePath )) { // 判断文件夹是否存在,不存在就创建 is_file ( $root.$basePath ) or mkdir ( $root.$basePath, 0777 ); } $baseFile = $basePath . $baseFile; if (! file_exists ($root.$file )) { // 判断原文件是否存在,不存在直接返回。 if (empty ( $def )) { // 如果没有默认图片 return $file; } else { // trace($def,"def"); return $def; } } //后缀名 if($file_ext=="gif"){ return $file; } if (! file_exists ( $root.$baseFile )) { // 判断文件是否存在 $image = new \Think\Image (); $image->open ( $root.$file ); // 生成一个缩放后填充大小的缩略图并保存 $image->thumb ( $width, $height,\Think\Image::IMAGE_THUMB_CENTER )->save ( $root.$baseFile ); // 生成缩略图 } $str2 = substr ( $baseFile, 0, 2 ); // 取前两个字符串 return $baseFile;}
阅读全文
0 0
- PHP常用方法代码片断
- 常用代码片断
- 常用的代码片断
- .net常用代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- J2ME常用功能代码片断
- Andorid 常用代码片断收集
- 常用的JavaScript代码片断分析
- C# 后台调用前台的JS方法 以及常用的代码片断
- 代码片断
- 代码片断
- 数学建模模型大全
- rs232 各引脚功能
- 62. Unique Paths
- Mysql性能优化-查询优化
- svg转base64
- PHP常用方法代码片断
- 使用C++标准库sort自定义比较函数导致死循环问题
- 基于ZYNQ的旋转编码器测速实验
- IE各版本CSS Hack(兼容性处理)语法速查表
- linux的中断机制
- Xcode编译策略之代码逻辑顺序不正确,变量不显示问题解决方案
- 0102.分流器——测电流用
- React -- 组件间通信
- Mysql性能优化-数据库设计