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;}