<?php
function remove_xss($val) {$val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);$search = 'abcdefghijklmnopqrstuvwxyz';$search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';$search .= '1234567890!@#$%^&*()';$search .= '~`";:?+/={}[]-_|\'\\';for ($i = 0; $i < strlen($search); $i++) {$val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;$val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;}$ra1 = array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');$ra2 = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');$ra = array_merge($ra1, $ra2);$found = true; while ($found == true) {$val_before = $val;for ($i = 0; $i < sizeof($ra); $i++) {$pattern = '/';for ($j = 0; $j < strlen($ra[$i]); $j++) {if ($j > 0) {$pattern .= '(';$pattern .= '(&#[xX]0{0,8}([9ab]);)';$pattern .= '|';$pattern .= '|(&#0{0,8}([9|10|13]);)';$pattern .= ')*';}$pattern .= $ra[$i][$j];}$pattern .= '/i';$replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); $val = preg_replace($pattern, $replacement, $val); if ($val_before == $val) {$found = false;}}}return $val;
}
/***URL生成函数**/
function URL($url='',$vars='',$suffix=true,$redirect=false,$domain=true){$two_domain=false;//用于判断当前域名是否绑定二级域名// 解析URL$info   =  parse_url($url);$url    =  !empty($info['path'])?$info['path']:ACTION_NAME;if(false !== strpos($url,'@')) { // 解析域名list($url,$host)    =   explode('@',$info['path'], 2);}// 解析子域名if(isset($host)) {$domain = $host.(strpos($host,'.')?'':strstr($_SERVER['HTTP_HOST'],'.'));}elseif($domain===true){$domain = $_SERVER['HTTP_HOST'];if(C('APP_SUB_DOMAIN_DEPLOY') ) { // 开启子域名部署if($domain!=='localhost'){if(C('DOMAIN')){$domain=C('DOMAIN');}else{$domain=$_SERVER['HTTP_HOST'];}}// '子域名'=>array('项目[/分组]');foreach (C('APP_SUB_DOMAIN_RULES') as $key => $rule) {if(false === strpos($key,'*') && 0=== strpos($url,$rule[0])) {if($_SERVER['HTTP_HOST']=='localhost'){$domain=$_SERVER['HTTP_HOST'];}else{$domain = $key.'.'.$domain; // 生成对应子域名$url    =  substr_replace($url,'',0,strlen($rule[0]));}$two_domain=true;//检测到绑定了二级域名赋值break;}}}}// 解析参数if(is_string($vars)) { // aaa=1&bbb=2 转换成数组parse_str($vars,$vars);}elseif(!is_array($vars)){$vars = array();}if(isset($info['query'])) { // 解析地址里面参数 合并到varsparse_str($info['query'],$params);$vars = array_merge($params,$vars);}// URL组装$depr = C('URL_PATHINFO_DEPR');if($url) {if(0=== strpos($url,'/')) {// 定义路由$route      =   true;$url        =   substr($url,1);if('/' != $depr) {$url    =   str_replace('/',$depr,$url);}}else{if('/' != $depr) { // 安全替换$url    =   str_replace('/',$depr,$url);}// 解析分组、模块和操作$url        =   trim($url,$depr);$path       =   explode($depr,$url);$var        =   array();$var[C('VAR_ACTION')]       =   !empty($path)?array_pop($path):ACTION_NAME;$var[C('VAR_MODULE')]       =   !empty($path)?array_pop($path):MODULE_NAME;if(!$two_domain || $_SERVER['HTTP_HOST']=='localhost') $var[C('VAR_GROUP')]       =  !empty($path)?$path[0]:GROUP_NAME;if(C('URL_CASE_INSENSITIVE')) {isset($var[C('VAR_ACTION')])&&$var[C('VAR_ACTION')]   =  strtolower($var[C('VAR_ACTION')]);isset($var[C('VAR_MODULE')])&&$var[C('VAR_MODULE')]   =  parse_name($var[C('VAR_MODULE')]);isset($var[C('VAR_GROUP')])&&$var[C('VAR_GROUP')]    =  strtolower($var[C('VAR_GROUP')]);}$var=array_filter($var);$sf=true;if(strtolower($var[C('VAR_ACTION')])==strtolower(C('DEFAULT_ACTION'))&&empty($vars)){unset($var[C('VAR_ACTION')]);if(strtolower($var[C('VAR_MODULE')])==strtolower(C('DEFAULT_MODULE'))&&empty($vars)){unset($var[C('VAR_MODULE')]);$sf=false;}}$var=array_filter($var);if(!C('APP_SUB_DOMAIN_DEPLOY') && C('APP_GROUP_LIST')) {if(!empty($path)) {$group                  =   array_pop($path);$var[C('VAR_GROUP')]    =   $group;}else{if(GROUP_NAME != C('DEFAULT_GROUP')) {$var[C('VAR_GROUP')]=   GROUP_NAME;}}if(C('URL_CASE_INSENSITIVE') && isset($var[C('VAR_GROUP')])) {$var[C('VAR_GROUP')]    =  strtolower($var[C('VAR_GROUP')]);}}}}if(C('URL_MODEL') == 0) { // 普通模式URL转换$url=   __APP__.'?'.http_build_query(array_reverse($var));if(!empty($vars)) {$vars   =   urldecode(http_build_query($vars));$url   .=   '&'.$vars;}}else{ // PATHINFO模式或者兼容URL模式if(isset($route)) {$url    =   __APP__.'/'.rtrim($url,$depr);}else{$url    =   __APP__.'/'.implode($depr,array_reverse($var));}if(!empty($vars)) { // 添加参数foreach ($vars as $var => $val)$url .= $depr.$var . $depr . $val;}if($suffix) {if($suffix==true&&C('URL_HTML_SUFFIX')!=''){$url.=C('URL_HTML_SUFFIX');}}}if($domain) {$url   =  (is_ssl()?'https://':'http://').$domain.$url;}if($redirect) // 直接跳转URLredirect($url);elsereturn $url;
}
/** 验证码输入是否正确检测,正确返回true*/function checkVERIFY($value){return session(C('VERIFY.verifyName'))== md5(strtolower($value))?true:false;
}
/** 获取系统信息*/
function get_sysinfo() {$sys_info['zlib']           = function_exists('gzclose');//zlib$sys_info['safe_mode']      = (boolean) ini_get('safe_mode');//safe_mode = Off$sys_info['safe_mode_gid']  = (boolean) ini_get('safe_mode_gid');//safe_mode_gid = Off$sys_info['timezone']       = function_exists("date_default_timezone_get") ? date_default_timezone_get() : L('no_setting');$sys_info['socket']         = function_exists('fsockopen') ;$sys_info['web_server']     = $_SERVER['SERVER_SOFTWARE'];$sys_info['phpv']           = phpversion();$sys_info['fileupload']     = @ini_get('file_uploads') ? ini_get('upload_max_filesize') :'unknown';return $sys_info;
}
/*** 把返回的数据集转换成Tree* @access public* @param array $list 要转换的数据集* @param string $pid parent标记字段* @param string $level level标记字段* @return array*/
function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) {// 创建Tree$tree = array();if(is_array($list)) {// 创建基于主键的数组引用$refer = array();foreach ($list as $key => $data) {$refer[$data[$pk]] =& $list[$key];}foreach ($list as $key => $data) {// 判断是否存在parent$parentId = $data[$pid];if ($root == $parentId) {$tree[] =& $list[$key];}else{if (isset($refer[$parentId])) {$parent =& $refer[$parentId];$parent[$child][] =& $list[$key];}}}}return $tree;
}/*** 对查询结果集进行排序* @access public* @param array $list 查询结果* @param string $field 排序的字段名* @param array $sortby 排序类型* asc正向排序 desc逆向排序 nat自然排序* @return array*/
function list_sort_by($list,$field, $sortby='asc') {if(is_array($list)){$refer = $resultSet = array();foreach ($list as $i => $data)$refer[$i] = &$data[$field];switch ($sortby) {case 'asc': // 正向排序asort($refer);break;case 'desc':// 逆向排序arsort($refer);break;case 'nat': // 自然排序natcasesort($refer);break;}foreach ( $refer as $key=> $val)$resultSet[] = &$list[$key];return $resultSet;}return false;
}
//删除目录
function deleteDir($dirname) {if (!file_exists($dirname)) {return false;}if (is_file($dirname) || is_link($dirname)) {return unlink($dirname);}$dir = dir($dirname);if($dir){while ( false !== $entry = $dir->read()) {if ($entry == '.' || $entry == '..') {continue;}deleteDir($dirname . DIRECTORY_SEPARATOR . $entry);}}$dir->close();return rmdir($dirname);
}/** 获取父级名称** $arr 数组** $pid 指定父id值** $id  指定父字段ID名称** $name 需要获取的值**/
function topName($arr=array(),$pid='',$id='id',$name='name'){foreach ($arr as $k=>$v){if($v[$id]==$pid){return $v[$name];break;}}
}/** 菜单处理*/
function menuTree($array=array(),$pid=0,$aNewArr=array()){if(is_array($array)){foreach($array as $k=>$v){if($v['pid']==$pid){$aNewArr[$k]=$array[$k];$aNewArr[$k]['findmenu']=menutree($array,$v['menu_id']);}}}return $aNewArr;
}
/**根据父IP返回所有子数据*/
function findarr($arr=array(),$id=0){if(is_array($arr)){foreach ($arr as $k => $v){if($v['pid']!==$id){unset($arr[$k]);}}}return array_filter($arr);
}
/** 获取键值* */
function getArraykey($arr=array(),$key){$newarr=array_keys($arr);return $newarr[$key];
}
/*用户名合法性检测*/
function checkUsername($value){$arr=explode(",",C('NO_USERNAME'));if(in_array(strtolower($value), $arr)){return false;}else{return true;}
}
/**字符段长度判断* @$str 传入字符串* @返回该字符串的长度*/
function utf8_strlen($str){$count = 0;for($i = 0; $i < strlen($str); $i++){$value = ord($str[$i]);if($value > 127){if($value >= 192 && $value <= 223)$i++;elseif($value >= 224 && $value <= 239)$i = $i + 2;elseif($value >= 240 && $value <= 247)$i = $i + 3;elsedie('Not a UTF-8 compatible string');}$count++;}return $count;
}
/*字符串截取*/
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {if(utf8_strlen($str)<=$length){return $str;}if(function_exists("mb_substr"))$slice = mb_substr($str, $start, $length, $charset);elseif(function_exists('iconv_substr')) {$slice = iconv_substr($str,$start,$length,$charset);if(false === $slice) {$slice = '';}}else{$re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";$re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";$re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";preg_match_all($re[$charset], $str, $match);$slice = join("",array_slice($match[0], $start, $length));}return $suffix ? $slice.'...' : $slice;
}
/*** 返回图片附件大小* @param $filesize 图片字节*/
function size($filesize) {if($filesize >= 1073741824) {$filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';} elseif($filesize >= 1048576) {$filesize = round($filesize / 1048576 * 100) / 100 . ' MB';} elseif($filesize >= 1024) {$filesize = round($filesize / 1024 * 100) / 100 . ' KB';} else {$filesize = $filesize . ' Bytes';}return $filesize;
}
//创建目录
function mkdirs($path, $mode = 0777){$dirs = explode('/',$path);$pos = strrpos($path, ".");if ($pos === false) {$subamount=0;}else {$subamount=1;}for ($c=0;$c < count($dirs) - $subamount; $c++) {$thispath="";for ($cc=0; $cc <= $c; $cc++) {$thispath.=$dirs[$cc].'/';}if (!file_exists($thispath)) {mkdir($thispath,$mode);}}
}
/*** @todo 过滤编辑器的危险代码*/
function getEditorContent($v){import('ORG.Util.Input');return Input::safeHtml($v);
}
//获取真实的ip地址
function getIP()
{static $realip;if (isset($_SERVER)){if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {$realip = $_SERVER["HTTP_CLIENT_IP"];} else {$realip = $_SERVER["REMOTE_ADDR"];}} else {if (getenv("HTTP_X_FORWARDED_FOR")){$realip = getenv("HTTP_X_FORWARDED_FOR");} else if (getenv("HTTP_CLIENT_IP")) {$realip = getenv("HTTP_CLIENT_IP");} else {$realip = getenv("REMOTE_ADDR");}}return ip2long($realip);
}//获取真实的ip地址+地区
function getIpAndArea()
{static $realip;//$realip = get_client_ip();import('ORG.Net.IpLocation');$Ipk = new IpLocation('UTFWry.dat'); // 实例化类$area = $Ipk->getlocation(); // 获取域名服务器所在的位置return $area;
}//替换敏感词
function rpword($str, $ck)
{     foreach($ck as $v){$word = $v['facmc'];$str = preg_replace('/'.$word.'/i', '**', $str);}return $str;
}//生成id编号
function get_id_code_md($data){ksort($data);foreach ($data as $key => $value) {$str .= "$key=$value&";}$sjzf = SJZF();$str.="time=".time()."&sjzf=".$sjzf;return MD5($str);}//生成指定个数的随机字符
function get_id_code_ra($num){$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', 'I', 'J', 'K', 'L','M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '9', '-', '_');$sjzf = '';for($i = 0; $i < $num; $i++){$sjzf .= $chars[mt_rand(0,count($chars)-1)];}return $sjzf;
}//获取文档类型
function get_file_type($res){switch ($res) {case 'doc':return "ic-doc";case 'docx':return "ic-doc";case 'ppt':return "ic-ppt";case 'pptx':return "ic-ppt";case 'xls':return "ic-xls";case 'xlsx':return "ic-xls";case 'pdf':return "ic-pdf";case 'txt':return "ic-txt";default:return "ic-txt";}
}//输出友好的时间
function mydate($time = NULL) {$text = '';if($time === NULL) {$time = time();}$t = time() - $time; //时间差 (秒)switch($t) {case $t == 0 :$text = '刚刚'; // 一分钟内break;case $t < 60 :$text = $t . '秒前'; // 一分钟内break;case $t < 3600 :$text = floor($t / 60) . '分钟前'; //一小时内break;case $t < 3600 * 24 :$text = floor($t / (60 * 60)) . '小时前'; // 一天内break;case $t < 3600 * 24 * 3 :$text = floor($time/(60*60*24)) == 1 ? '昨天 ' . date('H:i', $time) : '前天 ' . date('H:i', $time) ; //昨天和前天break;case $t < 3600 * 24 * 30 :$text = date('m月d日 H:i', $time); //一个月内break;case $t < 3600 * 24 * 365 :$text = date('m月d日', $time); //一年内break;default:$text = date('Y年m月d日', $time); //一年以前break;}return $text;
}//输出友好的时间
function mydates($time = NULL) {$text = '';if($time === NULL) {$time = time();}$t = time() - $time; //时间差 (秒)switch($t) {case $t == 0 :$text = '小于1个月'; // 一分钟内break;case $t < 60 :$text = '小于1个月'; // 一分钟内break;case $t < 3600 :$text = '小于1个月'; //一小时内break;case $t < 3600 * 24 :$text = '小于1个月'; // 一天内break;case $t < 3600 * 24 * 3 :$text = '小于1个月'; //昨天和前天break;case $t < 3600 * 24 * 30 :$text = '小于1个月'; //一个月内break;case $t < 3600 * 24 * 365 :$text = date('n个月', $t); //一年内break;default:$text = date('Y年n个月', $t); //一年以前break;}return $text;
}//获取时间差
function time_difference($add_time){$str1 = time();$str2 = strtotime($add_time);$cha = $str1 - $str2;if($cha>0){$day = floor($cha/86400);$hour = floor(($cha%86400)/3600);$minute = floor(($cha%3600)/60);$second = floor(($cha%60));}$str = '';if($day!=0 ){return $day.'天前';}if($hour!=0){$str .=$hour.'小时';}if($minute!=0){$str .=$minute.'分';}//if($second!=0){//    $str .=$second.'秒';//}return $str.'前';      }/*** 获取当前页面完整URL地址*/
function get_url() {$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';$php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';$relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
}//banner
function commGetBanner($type){$db=M('adv');$wh['type']=$type;$res=$db->where($wh)->order('id asc')->select();//dump($res);return $res;
}//所有课程分类
function commGetTypeList($path){$db=M('course_column');$where['path']=$path;$where['status']=1;$res=$db->where($where)->field("*,concat(path,'-',id) as bpath")->order("sort desc,id asc")->select();if($res){foreach ($res as $k => $v) {$res[$k]['sub']=commGetTypeList($path.'-'.$res[$k]['id']);}}return $res;
}/*** mysql varchar default 0* @access public* @param * @return* @todo* @throws*/
function setVarcharDefaultZero($var){if($var){return $var;}else{return 0;}
}function isMOblie_new(){$agent= $_SERVER['HTTP_USER_AGENT'];if(strpos($agent,"iPad")){//iPadif(strpos($agent,"Android")){//安卓return true;}else{//非安卓return true;}}else if(strpos($agent,"NetFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS")){//手机return true;}else{return false;//电脑}
}
function isMobile(){$agent= $_SERVER['HTTP_USER_AGENT'];$mobile_browser = '0';if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|ipad|iPad|Android|android|UCWEB|ucweb|OperaMini)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {$mobile_browser++;}if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or 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-','Googlebot-Mobile');if(in_array($mobile_ua,$mobile_agents)) {$mobile_browser++;}if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {$mobile_browser++;}if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {$mobile_browser=0;}if($mobile_browser>0) {return true;//header("Location: mobile.php"); //手機版}else {return false;//header("Location: pc.php");  //電腦版}}

常用的common function库(三)相关推荐

  1. 【Vue.js】Vue.js中常用的UI组件库和Vue Router

    1.Vue生态中常用的UI组件库 1. vant 介绍 轻量级.可靠的移动端 Vue 组件库 有赞前端团队出品 GitHub地址:https://github.com/youzan/vant 特性 拥 ...

  2. 【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )

    文章目录 一.拷贝并分析 Android 中的 /system/lib/libc.so 动态库 二.拷贝并分析 Android 中的 /system/lib/libc++.so 动态库 三.拷贝并分析 ...

  3. python科学计算主要学什么_以下哪些是python常用的科学计算库?_学小易找答案

    [单选题]17-51. 在 Windows 中,若要终止未响应的应用程序,可使用( ) [单选题]19-55.在 Windows控制面板中,下列无法实现的操作是 [单选题]witness的元素属性(比 ...

  4. C++常用的一些网络库

    文章目录 前言 一.libcurl:高可移植.功能丰富的通信库 二.cpr:更现代.更易用的通信库 三.ZMQ:高效.快速.多功能的通信库 总结 前言 这几天浏览了一下极客时间罗剑锋老师的<C+ ...

  5. #Ubuntu#__装机必备__常用软件和工具库安装

    #Ubuntu#__装机必备__常用软件和工具库安装 一.常用软件与功能库 1. 常用软件: 2. 常用库: 3. 代码管理工具git 4. C++开发: 5. python开发: 6. 其他库: 二 ...

  6. 几种常用的图像处理函数库

    from:http://www.wtoutiao.com/p/18a4MqP.html 几种常用的图像处理函数库 OpenCV OpenCV的全称是:Open Source Computer Visi ...

  7. 【Android 逆向】Android 中常用的 so 动态库 ( libdvm.so | libart.so | libandroid_runtime.so | libandroidfw.so )

    文章目录 一.Android 虚拟机涉及的 libdvm.so 动态库 和 libart.so 动态库 二.Android 运行时相关 libandroid_runtime.so 动态库 三.Andr ...

  8. python如何安装matplotlib_详解python安装matplotlib库三种失败情况

    (可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...

  9. Python中最常用十大图像处理库详细介绍

    本文主要介绍了一些简单易懂最常用的Python图像处理库 当今世界充满了各种数据,而图像是其中高的重要组成部分.然而,若想其有所应用,我们需要对这些图像进行处理.图像处理是分析和操纵数字图像的过程,旨 ...

  10. Boost.Function 库示例

    Boost.Function 库示例 实现功能 C++实现代码 实现功能 Boost.Function 库示例 C++实现代码 #include <iostream> #include & ...

最新文章

  1. 一图看懂学位服:学位帽、学位袍、流苏、垂布
  2. 查看Linux的磁盘使用情况
  3. Java 7:项目代币中的代码示例
  4. 洛谷P1126 机器人搬重物【bfs】
  5. Unity热更新学习(二) —— ToLua c#与lua的相互调用
  6. 【BZOJ】4152: [AMPPZ2014]The Captain【SLF优化Spfa】
  7. LINUX下多路径(multi-path)介绍及使用
  8. bzoj1036 count 树链剖分或LCT
  9. 阵列信号处理 窄带信号与包络
  10. Kali渗透-MSF木马免杀技术
  11. Ubuntu18.04安装CAJViewer
  12. DNS 解析出错导致 MySQL 无法连接
  13. EAN13条形码校验公式及代码实现
  14. 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技
  15. 9.4 网易互娱客户端笔试
  16. [转]架构必备:Rate limiting 的作用和常见方式
  17. 常规诊疗条件下比较依那西普生物类似药(益赛普)与阿达木、英夫利西对RA的疗效[EULAR2015_SAT0360]...
  18. Eolink 10月企业与产品动态速览
  19. 用Visio做工作流程图
  20. Tableau数据合并

热门文章

  1. Unity开发 MMORPG类游戏引导系统
  2. linux下的/usr目录
  3. 浅谈 iOS14 Widget小组件
  4. 微服务架构 VS 单体架构
  5. python中sub函数用法_Python pandas.DataFrame.sub函数方法的使用
  6. 计算机所有以太网适配的ip,Win10电脑以太网没有有效的ip配置怎么解决?附上具体解决方法...
  7. win10连不上网,搜索不到WiFi,本地连接也断开
  8. 计算机硬件系统不包括什么,硬件有哪些(计算机硬件不包括)
  9. 用python爬取小说章节内容
  10. mysql 格林时间转换_oracle中将格林威治时间转化为一般时间