首页 php教程 php手册 正式商业旗舰版Modoer点评系统3.5(Modoer 3.5)手机WEB端加微信公

正式商业旗舰版Modoer点评系统3.5(Modoer 3.5)手机WEB端加微信公

Jun 06, 2016 pm 07:37 PM
w 商业 手机 旗舰 正式 点评 系统

点评系统一如既往的好用,功能细化到令人发指的地步,值得推荐,本资源不像论坛那样购买会员然后要回复或者积分等级才能下载,下载了未必能用,本资源立即下载即用,减少了论坛的繁琐流程,没有任何限制,不限制任何域名。 正式版更新内容: 手机版变化如下:

点评系统一如既往的好用,功能细化到令人发指的地步,值得推荐,本资源不像论坛那样购买会员然后要回复或者积分等级才能下载,下载了未必能用,本资源立即下载即用,减少了论坛的繁琐流程,没有任何限制,不限制任何域名。
正式版更新内容:
手机版变化如下:
1.在测试版中增加的手机版评论模块推翻进行了全部的重写,重写后的效果参考了一些流行的手机app的ui和流程,使用起来用户体验更好
2.对手机版本的全部css和大多数的javascript代码进行了重构,css代码参考了Bootstrap的部分代码
3.针对小组的回帖功能,增加了图片上传功能
4.比较重要的功能,Modoer的在线充值支付模块在手机web版中增加了支付宝的手机网站支付功能,这样,我们下面就可以开发商城,团购等需要在线支付的功能。
5.对于支付宝手机网站支付功能,我们先坐上了手机在线充值现金的功能
6.主题的相册浏览部分改进为划屏浏览,并增加了评论功能
7.新增加了ajax分页加载插件,很多之前需要进行翻页的列表页面都进行了改进,都实现了ajax无刷新加载下一页内容的效果,也符合手机里查看数据的习惯
8.主题筛选进行了改进,这次终于可以进行三级分类和地区的筛选了。
9.其他一些修改多半都是改进页面的UI效果和使用新开发的js插件,这里就不一一细说了
正式版(20150205):
增加 微信模块商户主题绑定微信公众平台(可设置绑定权限,可单独开关)
增加 微信模块商家自定义指令添加(支持文字和图文类型)
增加 微信模块商家微站引导页(管理导航,轮换图片)
增加 微信模块商家微站引导页模板系统
增加 微信模块微信自定义菜单新类型(扫描,上传图片等新类型)
增加 榜单模块会员组添加榜单权限
增加 榜单模块会员组添加榜单数量限制的权限
增加 主题模块内容页添加到榜单的功能
增加 主题模块自定义字段里单行文本图形化来防采集(显示模版内些{display:modoer:createimg})
增加 会员模块手机web里允许添加支付密码的功能
增加 会员模块Facebook帐号登录绑定功能
增加 点评模块点评内容同步Facebook功能
增加 在线充值模块Paypal提现功能(可自由选择,个人设置里需填写PayPal帐号)
增加 手机Web模块首页菜单管理集成到后台
增加 个人空间模块空间可上传背景图片
重构 微信模块所有代码以支持多用户绑定
改进 Modoer框架代码使用PHP5.3新特性
改进 微信模块内置指令管理
改进 文件(图片)上传功能
改进 后台模板添加模式
增加 后台内容管理加入内联管理功能
增加 新闻模块增加内联功能
增加 个人空间我的文章列表
增加 会员每日登录积分策略
增加 主题模块浏览地图增加搜索功能
增加 系统工具箱增加系统文件夹权限检测
增加 框架内分站类接管当前城市信息读取
改进 分站以及URL解析代码
改进 所有现金支取必须进行双表验证
改进 后台广告列表改进
正式商业旗舰版Modoer点评系统3.5(Modoer 3.5)手机WEB端加微信公 正式商业旗舰版Modoer点评系统3.5(Modoer 3.5)手机WEB端加微信公 正式商业旗舰版Modoer点评系统3.5(Modoer 3.5)手机WEB端加微信公
<?php
/**
* 通用函数库
* @author moufer<moufer@163.com>
* @copyright (C)2001-2007 Moufersoft
*/
!defined('IN_MUDDER') && exit('Access Denied');

define('MF_INT_KEY', '_int_keyid');
define('MF_INT', 'intval');
define('MF_FLOAT', 'floatval');
define('MF_HTML', '_HTML');
define('MF_TEXT', '_T');

//取得$_GET里的变量
function _get($var, $default = null, $convert_fun='') {
    if(isset($_GET[$var])) {
        if($convert_fun) return $convert_fun($_GET[$var]);
        return $_GET[$var];
    }
    return $default;
}
//取得$_GET里的变量
function _post($var, $default = null, $convert_fun='') {
    if(isset($_POST[$var])) {
        if($convert_fun) return $convert_fun($_POST[$var]);
        return $_POST[$var];
    }
    return $default;
}
//取得$_COOKIE里的变量
function _cookie($var, $default = null, $prefix = 1) {
    global $_G;
    if($prefix) {
        return isset($_G['cookie'][$var]) ? $_G['cookie'][$var] : $default;
    } else {
        return isset($_COOKIE[$var]) ? $_COOKIE[$var] : $default;
    }
}
//取得一个输入变量
function _input($var, $default = null, $convert_fun='', $sx='pg') {
    $r = $default;
    $c = strlen($sx);
    $funs = array('p'=>'_post','g'=>'_get');
    for($i=0;$i<$c;$i++) {
        $x = $sx{$i};
        $f = isset($funs[$x]) ? $funs[$x] : '';
        if(!$f) continue;
        $r = $f($var, $default, $convert_fun);
        if(!empty($r) && $r != $default) return $r;
    }
    if(!$r) $r = $default;
    return $r;
}
//设置$_POST里的变量
function set_post($var, $value = '') {
    $_POST[$var] = $value;
}
//设置$_POST里的变量
function set_get($var, $value = '') {
    $_GET[$var] = $value;
}
//设置cookie
function set_cookie($var, $value, $life = 0, $prefix = 1) {
    $life = $life ? _G('timestamp') + $life : 0;
    $secure = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0;
    $var = ($prefix ? _G('cookiepre') : '') . $var;
    return setcookie($var, $value, $life, _G('cookiepath'), _G('cookiedomain'), $secure);
}
//删除cookie
function del_cookie($var, $prefix = 1) {
    if(is_array($var)) {
        foreach($var as $val) set_cookie($val, '', -360000, $prefix);
    } else {
        set_cookie($var, '', -360000, $prefix);
    }
}
// Get Global value
function &_G() {
    global $_G;
    $max_level = 5;
    $result = '';
    $args_num = func_num_args();
    if($args_num > $max_level) return $result;
    $args = func_get_args();
    $val =& $_G;
    foreach ($args as $v) {
        if(!isset($val[$v])) return $result;
        $val =& $val[$v];
    }
    return $val;
}
/**
 * 获取公共配置文件夹(APP_ROOT/config/)文件数据
 * @static var array $config
 * @param string $key 支持二维,三维数组查询,如:aa.bbb,表示: 二维数组['aaa']['bbb'];参数为"@all":表示获取指定文件的全部数据;
 * @param string $config_file_name 需要获取数据的文件(不写.php),默认获取global.php里的
 * @return array|null
 */
function config($key, $module = 'modoer') {
    static $config = array();
    if(!$module) $module = 'modoer';
    if(!isset($config[$module])) {
        $config[$module] = _G('loader')->variable('config', $module);
    }
    if($key == '@all') return $config[$module];
    if(strpos($key, '.')) {
        $keys = explode('.', $key);
        $tmp =& $config[$module];
        foreach ($keys as $k) {
            if(!is_array($tmp) || !isset($tmp[$k])) return null;
            $tmp =& $tmp[$k];
        }
        return $tmp;
    } else {
        if(isset($config[$module][$key])) return $config[$module][$key];
    }
    return null;
}
//获取一个数字型的数据库主键id值
function _int_keyid($string) {
    if(is_array($string)) {
        foreach($string as $key => $val) $string[$key] = _int_keyid($val);
        return $string;
    } else {
        return abs((int)$string);
    }
}
//过滤HTML,用于Text
function _T($string) {
    if(is_array($string)) {
        foreach($string as $key => $val) $string[$key] = _T($val);
        return $string;
    } else {
        $string = is_string($string) ? preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;", htmlspecialchars($string, ENT_QUOTES)) : $string;
        return str_replace($wu, $rp, trim($string));
    }
}
//过滤HTML,用于TextArea
function _TA($string) {
    return preg_replace("/(\r\n|\n\r|\n|\r)/", "\r\n", _T($string));
}
//支持HTML格式,过滤可能引起安全问题的HTML标记
function _HTML($string) {
    $search_arr = array("/(javascript|jscript|js|vbscript|vbs|about):/i","/on(mouse|exit|error|click|dblclick|key|load|unload|change|move|submit|reset|cut|copy|select|start|stop)/i","/<script([^>]*)>/i","/<iframe([^>]*)>/i","/<frame([^>]*)>/i","/<link([^>]*)>/i","/@import/i");
    $replace_arr = array("\\1\n:","on\n\\1","<script\\1>","<iframe\\1>","<frame\\1>","<link\\1>","@\nimport");
    $string = preg_replace($search_arr, $replace_arr, $string);
    //$string = str_replace("&#", "&\n#", $string);
    return $string;
}
//格式化换行符号
function _NL($string) {
    return trim(preg_replace("/\s*(\r\n|\n\r|\n|\r)\s*/", "\r\n", $string));
}
//把字符串转化为JS的字符变量
function _JStr($string) {
	return str_replace(array('"', "\r\n", "\n"), array('\"', '', ''), $string);
}
//把一维数组转换为字符串
function _ArrayToStr($array, $split=',') {
    if(empty($array)) return '';
    if(!is_array($array)) return $array;
    return implode($split, $array);
}
//简单加密
function authcode($string, $operation = 'DECODE') {
    $string = $operation == 'DECODE' ? base64_decode($string) : base64_encode($string);
    return $string;
}
//数组格式化
function arrayeval($array, $level = 0) {
    if(!is_array($array)) {
        return "'".$array."'";
    }
    if(is_array($array) && function_exists('var_export')) {
        return var_export($array, true);
    }
    $space = '';
    for($i = 0; $i <= $level; $i++) {
        $space .= "\t";
    }
    $evaluate = "array (\n\r";
    $comma = $space;
    if(is_array($array)) {
        foreach($array as $key => $val) {
            $key = is_string($key) ? '\''.add_cs_lashes($key).'\'' : $key;
            $val = !is_array($val) && (!preg_match("/^\-?[0-9]\d*$/", $val) || strlen($val) > 12) ? '\''.add_cs_lashes($val, '\'\\').'\'' : $val;
            if(is_array($val)) {
                $evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
            } else {
                $evaluate .= "$comma$key => $val";
            }
            $comma = ",\n\r$space";
        }
    }
    $evaluate .= "\n\r$space)";
    return $evaluate;
}
//以 C 语言风格使用反斜线转义字符串中的字符
function add_cs_lashes($string) {
    return $string ? addcslashes($string, '\'\\') : '';
}
//转换数组里的全部数值
function new_intval($number) {
    if(is_array($number))
        foreach($number as $key => $val) $number[$key] = new_intval($val); 
    else
        return intval($number);
    return $number;
}
//Un-quotes a quoted string
function strip_slashes($string, $filter_line=false) {
    if(is_array($string))
        foreach($string as $key => $val) $string[$key] = strip_slashes($val); 
    else
        $string = is_string($string) ? stripslashes($string) : $string;
        if($filter_line) $string = str_replace(array("\r\n","\n"),'', $string);
    return $string;
}
//过滤SQL
function strip_sql($string) {
    $pattern_arr = array("/ union /i", "/ select /i", "/ update /i", "/ outfile /i", "/ or /i");
    $replace_arr = array(' union ', ' select ', ' update ',' outfile ', ' or ');
    return is_array($string) ? array_map('strip_sql', $string) : preg_replace($pattern_arr, $replace_arr, $string);
}
//过滤orderby
function strip_order($string) {
    $string = preg_replace('/.?select.+from.+/i', '', $string);
    $string = preg_replace("/.?delete.+from.+/i", '', $string);
    $string = preg_replace("/.?update.+set.+/i", '', $string);
    $string = preg_replace("/.?select.+union.+/i", '', $string);
    return $string;
}
//转换浮点数
function cfloat($float) {
    $num = (float)$float;
    return $num;
}
//从开端截取
function trimmed_title($text, $limit=12, $ext='') {
    if ($limit) {
        $val = csubstr($text, 0, $limit);
        return $val[1] ? $val[0].$ext : $val[0];
    } else {
        return $text;
    }
}
//截取
function csubstr($text, $start=0, $limit=12) {
    $charset = _G('charset');
    if (function_exists('mb_substr')) {
        $more = (mb_strlen($text, $charset) > $limit) ? true : false;
        $text = mb_substr($text, $start, $limit, $charset);
        return array($text, $more);
    } elseif (function_exists('iconv_substr')) {
        $more = (iconv_strlen($text) > $limit) ? true : false;
        $text = iconv_substr($text, $start, $limit, $charset);
        return array($text, $more);
    } elseif (strtolower($charset) == "utf-8") {
        preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $text, $ar);
        if(func_num_args() >= 3) {
            if (count($ar[0])>$limit) {
                $more = true;
                $text = join("",array_slice($ar[0],$start,$limit))."...";
            } else {
                $more = false;
                $text = join("",array_slice($ar[0],$start,$limit));
            }
        } else {
            $more = false;
            $text = join("",array_slice($ar[0],$start));
        }
        return array($text, $more);
    } else {
        $fStart = 0;
        $fStart = $fStart * 2; 
        $limit = $limit * 2; 
        $strlen = strlen($text);
        for ( $i = 0; $i < $strlen; $i++ ) { 
            if ($i >= $fStart && $i < ($fStart + $limit ) ) { 
                if (ord(substr($text, $i, 1)) > 129) $tmpstr .= substr($text, $i, 2); 
                else $tmpstr .= substr($text, $i, 1); 
            } 
            if (ord(substr($text, $i, 1)) > 129 ) $i++; 
        } 
        $more = strlen($tmpstr) < $strlen; 
        return array($tmpstr, $more);
    }
}
//计算字符数量,非占用字节
function strlen_ex($str) {
    $charset = _G('charset');
    if(function_exists('mb_strlen')) {
        return mb_strlen($str, $charset);
    } elseif(function_exists('iconv_strlen')) {
        return iconv_strlen($str, $charset);
    } elseif($charset == 'utf-8') {
        preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $str, $ar);
        return count($ar[0]);
    } else {
        $len = 0;
        $strlen = strlen($str);
        for( $i = 0; $i < $strlen; $i++ ) { 
            $len++;
            if (ord(substr($str, $i, 1)) > 129 ) $i++; 
        }
        return $len;
    }
}
//截取,按字节数量截取
function substr_ex($text, $start=0, $limit=255) {
    $charset = _G('charset');
    list($s,) = csubstr($text, $start, $limit);
    $len = strlen($s);
    if($len <= $limit) return $s;
    $i = $l =0;
    $mo = $charset == 'utf-8' ? 3 : 2;
    $str = '';
    while($l < $limit) {
        $z = floor(($limit - $l) / $mo);
        !$z && $z = 1;
        $y = csubstr($s, $i, $z);
        $i += $z;
        $l = strlen($str) + strlen($y[0]);
        if($l <= $limit) {
            $str .= $y[0];
        } else {
            break;
        }
    }
    return $str;
}
//转换unix时间戳
function newdate($date, $format='Y-m-d H:i', $dnum=2, $dunit='月') {
    $timestamp = _G('timestamp');
    $date == 'NOW' ? $timestamp : $date;
    if(!$date) return '';
    $date = is_numeric($date) ? $date : (!$date ? $timestamp : strtotime($date));
    $date = ($date == -1 || !$date) ? $timestamp : $date;
    if($format != 'w2style') {
        return date($format, $date);
    } else {
        $tm = $timestamp - $date;
        $num = 0;
        if($tm < 60) {
            $num = $tm;
            $unit = 'second';
        } elseif($tm < 3600) {
            $num = floor($tm / 60);
            $unit = 'minute';
        } elseif($tm < 3600 * 24) {
            $num = floor($tm / 3600);
            $unit = 'hour';
        } elseif($tm < 3600 * 24 * 30) {
            $num = floor($tm / (3600 * 24));
            $unit = 'day';
        } elseif($tm < 3600 * 24 * 30 * 365) {
            $num = floor($tm / (3600 * 24 * 30));
            $unit = 'month';
        }
        if($dnum <= $num && $dunit == $unit) {
            return date('Y-m-d H:i', $date);
        }
        return $num > 0 ? (lang('global_time_format', array($num, lang('global_time_'.$unit)))) : date('Y-m-d', $date);
    }
}
//判断电子邮件
function isemail($email) {
    return strlen($email) > 6 && preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/", $email);
}
//判断是不是图片
function is_image($imgfile) {
    if(!$imgfile) return;
    $ext = strtolower(pathinfo($imgfile, PATHINFO_EXTENSION));
    $exts = array('png','jpeg','jpg','gif');
    if(!in_array($ext, $exts)) return false;
    if(!function_exists('getimagesize')) return false;
    if(!is_file($imgfile)) return false;
    return @getimagesize($imgfile);
}
//判断字符串是否被序列化
function is_serialized( $data ) {
    // if it isn't a string, it isn't serialized
    if ( !is_string( $data ) )
        return false;
    $data = trim( $data );
    if ( 'N;' == $data )
        return true;
    if ( !preg_match( '/^([adObis]):/', $data, $badions ) )
        return false;
    switch ( $badions[1] ) {
        case 'a' :
        case 'O' :
        case 's' :
            if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )
                return true;
            break;
        case 'b' :
        case 'i' :
        case 'd' :
            if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) )
                return true;
            break;
    }
    return false;
}
//判断文件是否可写
function is__writable($path) {
    if ($path{strlen($path)-1}=='/')
        return is__writable($path.uniqid(mt_rand()).'.tmp');
    else if (is_dir($path))
        return is__writable($path.'/'.uniqid(mt_rand()).'.tmp');
    $rm = file_exists($path);
    $f = @fopen($path, 'a');
    if ($f===false)
        return false;
    fclose($f);
    if (!$rm)
        unlink($path);
    return true;
}
//获取随机数 ALL(数字或字母),NUM(数字),WORD(字母)
function random($length=8, $idtype='ALL') {
    PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
    $hash = '';
    for ($i = 0; $i < $length;  $i++) {
        if ( 'NUM' == $idtype ) {
            if (0==$i) {
                $hash .= chr(rand(49, 57));
            } else {
                $hash .= chr(rand(48, 57));
            }
        } else if ( 'WORD' == $idtype ){
            $hash .= chr(rand(65, 90));
        } else {
            if ( 0==$i ) {
                $hash .= chr(rand(65, 90));
            } else {
                $hash .= (0==rand(0,1))?chr(rand(65, 90)):chr(rand(48,57));
            }
        }
    }
    return $hash;
}
//生成参数序列
function create_identifier($params) {
    return substr(md5(serialize($params)),0,8);
}
//生成表单序列
function create_formhash($p1, $p2, $p3) {
    $authkey = _G('cfg','authkey');
    return substr(md5($authkey . $p1 . $p2 . $p3), 8, 8);
}
//替换全角数字
function cdc2dbc($number) {
    $search_arr = array('0','1','2','3','4','5','6','7','8','9');
    $replace_arr = array('0','1','2','3','4','5','6','7','8','9');
    return str_replace($search_arr, $replace_arr, $number);
}
//判断字串长度范围
function string_length($string, $min, $max) {
    return strlen($string) >= $min && strlen($string) <= $max;
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

三星 Galaxy S25 Ultra 手机曝料:6.86 英寸、横向屏占比 94.1% 三星 Galaxy S25 Ultra 手机曝料:6.86 英寸、横向屏占比 94.1% Aug 17, 2024 pm 01:49 PM

8月17日消息,消息源@i冰宇宙今天发布微博,表示苹果iPhone16ProMax精确尺寸6.88英寸,GalaxyS25Ultra精确尺寸6.86英寸,两者都可视为6.9英寸。消息源表示三星GalaxyS25Ultra比S24Ultra更窄的机身,还有更宽的屏幕,横向屏占比94.1%,而S24Ultra横向屏占比是91.5%。fenye查询该消息源相关微博,他还评论了最新曝光的iPhone16ProMax照片,认为接近微曲是错误的,该机然是直屏+2.5D玻璃。

'串联OLED”被苹果带火了,比OLED强在哪里? '串联OLED”被苹果带火了,比OLED强在哪里? Aug 19, 2024 am 04:42 AM

虽然最近几年的苹果一直被诟病创新不足,但是苹果也并不总是止步不前。至少在硬件设计上,在苹果产品的高单价支持下,它的工程师可以轻松尝试一些全新的技术,而不需要过多的考虑成本问题。比如iPadPro,作为苹果最喜欢的“显示技术”试验田,iPadPro从2021年的miniLED到2024年的串联OLED,一直走在便携智能设备的显示技术前沿。虽然iPadPro并非首个搭载miniLED屏幕的便携智能设备(微星较苹果早一年发布miniLED笔记本电脑),但是当你对比两者的参数,你会很快意识到他们不是一个

海力士抢先展示UFS 4.1闪存:基于V9 TLC NAND颗粒打造 海力士抢先展示UFS 4.1闪存:基于V9 TLC NAND颗粒打造 Aug 09, 2024 pm 03:33 PM

8月9日消息,在FMS2024峰会上,SK海力士展示了其最新的存储产品,包括尚未正式发布规范的UFS4.1通用闪存。据JEDEC固态技术协会官网信息,目前公布的最新UFS规范是2022年8月的UFS4.0,其理论接口速度高达46.4Gbps,预计UFS4.1将在传输速率上实现进一步的提升。1.海力士展示了512GB和1TBUFS4.1通用闪存产品,基于321层V91TbTLCNAND闪存。SK海力士还展出了3.2GbpsV92TbQLC和3.6GbpsV9H1TbTLC颗粒。海力士展示了基于V7

首发1.5K屏下摄像!努比亚Z70 Ultra来了:全球首款骁龙8 Gen4真全面屏手机 首发1.5K屏下摄像!努比亚Z70 Ultra来了:全球首款骁龙8 Gen4真全面屏手机 Aug 19, 2024 pm 03:47 PM

8月19日消息,努比亚自Z50Ultra发布以来,一直秉承着真全面屏的设计,并且一直在高像素屏下前摄领域不断探索。今日,据数码博主智慧皮卡丘爆料称,今年下半年即将发布的努比亚Z70Ultra将首发1.5K屏下摄像技术,是迄今为止行业内分辨率最高的UDC方案。据悉,目前中兴旗下的屏下前摄方案已推进到第六代。最新的屏下前摄方案在努比亚Z60Ultra、红魔9SPro系列中皆有所应有。屏幕分辨率为2480x1116,介于1080P和1.5K分辨率之间。这一次努比亚将通过突破现有分辨率的限制,将在行业内

苹果华为都想做的无按键手机,被小米先做出来了? 苹果华为都想做的无按键手机,被小米先做出来了? Aug 29, 2024 pm 03:33 PM

根据Smartprix的爆料称,小米正在研发一台代号为「朱雀」的无按键手机。这份爆料称,这台代号朱雀的手机将秉承一体化的理念设计,使用屏下摄像头,并搭载高通骁龙8gen4处理器,如果计划没有变动,我们很可能在2025年看到它的到来。看到这个消息,我恍惚间以为自己回到了2019年——那时候小米发布了小米MIXAlpha概念机,环绕屏无按键设计相当惊艳。这是我第一次见识到无按键手机的魅力。想要一块「魔力玻璃」,就要先把按键干掉在《乔布斯传》中,乔布斯曾经表达过:希望手机能够像一块「充满魔力的玻璃」,

华为将在智能穿戴领域推出玄玑感知系统 可根据心率评估用户情绪状态 华为将在智能穿戴领域推出玄玑感知系统 可根据心率评估用户情绪状态 Aug 29, 2024 pm 03:30 PM

近日,华为宣布将于9月推出一款搭载玄玑感知系统的全新智能穿戴新品,预计为华为的最新智能手表。该新品将集成先进的情绪健康监测功能,玄玑感知系统以其六大特性——准确性、全面性、快速性、灵活性、开放性和延展性——为用户提供全方位的健康评估。系统采用超感知模组,优化了多通道光路架构技术,大幅提升了心率、血氧和呼吸率等基础指标的监测精度。此外,玄玑感知系统还拓展了基于心率数据的情绪状态研究,不仅限于生理指标,还能评估用户的情绪状态和压力水平,支持超过60项运动健康指标监测,涵盖心血管、呼吸、神经、内分泌、

华为Mate 70系列配置泄露:全系1.5K屏幕 配超大电池 华为Mate 70系列配置泄露:全系1.5K屏幕 配超大电池 Aug 08, 2024 pm 10:21 PM

8月8日消息,华为Mate70系列手机的详细配置信息近日被曝光,该系列手机预计将在2024年第四季度发布。1.据爆料,Mate70系列将全系采用定制的顶级1.5K分辨率屏幕,满足用户对屏幕清晰度的要求。预计华为Mate70Pro以及超大杯版本将配备四等深屏幕,而标准款的Mate70则可能采用略小的类直屏设计。除了屏幕升级,华为Mate70系列还将全系配备新基材的超大容量电池,预示着华为Mate系列手机续航能力的突破。尽管华为正在研发超声波指纹解锁技术,但今年的Mate70系列将不会搭载此功能。此

用手机打《黑神话:悟空》?实测能玩,但是不推荐 用手机打《黑神话:悟空》?实测能玩,但是不推荐 Aug 23, 2024 pm 09:44 PM

自《黑神话:悟空》上线以来,热度未曾下降,各大平台每天都有好多个热搜。可惜对于手机玩家来说,热闹只属于PC玩家、主机玩家和掌机玩家。那怎么行,我们搞手机的不能输。首先我们排除在手机上运行黑猴的思路,作为一个体积100多GB的大型3A游戏,性能需求是很高的,而且大量的渲染技术都是针对PC端硬件开发的,如果用手机硬件转译运行,别说帧率画面有多好,可能都无法进入游戏。既然这样,只能看看现在爆火的云游戏了,腾讯和网易两大巨头都有针对《黑神话》推出相应的活动。凭借自身WeGame平台也是发售平台的优势,腾

See all articles