自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 问答 (3)
  • 收藏
  • 关注

原创 discuz 生成随机数random函数解析

函数定义:function_core.phpfunction random($length, $numeric = 0) { $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35); $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed)); i

2021-06-19 14:01:39 597 2

原创 discuz 获取用户资料getuserprofile函数解析

函数定义:function_core.php函数参数:field:资料段名称返回值:存在返回资料内容反正返回nullfunction getuserprofile($field) { global $_G; if(isset($_G['member'][$field])) { return $_G['member'][$field]; } static $tablefields = array( 'count' => array('extcredits1','extcredi

2021-06-19 13:59:11 776

原创 使用foreach遍历对象

PHP5起可以使用foreach遍历对象,但受访问权限的影响。<?phpclass MyClass{ public $var1 = 'value 1'; public $var2 = 'value 2'; public $var3 = 'value 3'; protected $protected = 'protected var'; private $private = 'private var'; function iterateV

2021-06-19 13:14:11 1076

原创 PHP 匿名函数bind与bindTo方法使用总结

闭包函数又叫匿名函数,即一个没有函数名称的函数。$func = function ($var) { return $var;};在定义一个闭包函数时实际就是定义了一个Closure类的实例化对象, 这个类中有三个final的方法:Closure { __construct ( void ) public static Closure bind (Closure $closure , object $newthis [, mixed $newscope = 'stat

2021-03-16 22:52:23 1094

原创 php get_called_class()函数与get_class()函数的区别

get_class (): 获取当前调用方法的类名;get_called_class():获取静态绑定后的类名, 即当前运行的类的类名。class Foo{ public function test(){ var_dump(get_class()); } public function test2(){ var_dump(get_called_class()); } public static fu.

2021-03-15 16:14:18 188

原创 php 延迟静态绑定

其实很简单, self被解析为定义当前属性、方法所在的类,而static被解析为实际运行时所在的类。举例:class A{ static $name = "Tom"; public function printName(){ echo self::$name."\n"; self::fun(); } static function fun(){ echo "A Class\n"; }}class B extend

2021-03-15 15:40:27 142

原创 Discuz!开发之时间处理函数dgmdate()详解

使用过Discuz!的朋友都会知道Discuz!的时间可以显示成多少秒前、多少分钟前、几个小时前、几天前等等,而不是单纯的显示标准时间,这样的时间显示方式就更显得人性化了!那么Discuz!是如何处理这个个性化时间显示的呢,我们来看看Discuz!时间处理函数dgmdate()定义文件:\source\function\function_core.php相关代码:/** * 格式化时间 * @param $timestamp - 时间戳 * @param $format - dt=日期时间

2021-03-12 20:13:53 458

原创 PHP 自定义函数,移动上传的文件至指定位置(兼容多个PHP版本)

函数取自Discuz(略有改动),觉得挺不错的基本兼容了所有PHP版本。参数:source:当前位置target:目标位置返回值:成功返回true,失败返回false function save_to_local($source, $target) { if(!is_upload_file($source)) { $succeed = false; }elseif(@copy($source, $target)) { $succeed = true; }elseif(fun

2021-03-11 15:40:36 127

转载 php flock 使用实例

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )flock()允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的Unix派生版和windows)在PHP 5.3.2版本之前,锁会被 fclose() 释放(在脚本结束后会自动调用),现在需要手动解锁operation参数1.LOCK_SH 取得共享锁(读取的程序)2.LOCK_EX 取得独占锁(写入的程序)3.LOCK_UN 释

2021-03-11 11:33:01 262

原创 PHP header函数常见用法

header — 发送原生 HTTP 头header ( string $string , bool $replace = true , int $http_response_code = ? ) : void参数:header:用于保存标题字符串。有两种类型的标头调用,第一种是以字符串“HTTP /”开头,用于确定要发送的HTTP状态代码;第二种是“Location:”开头,这是强制性参数。replace:用于表示标题应该替换前一个或添加第二个标题,可省略。默认值为True(将替换),如果值.

2021-03-11 09:58:10 168

原创 PHP http_build_query用法详解

http_build_query — 生成 URL-encode 之后的请求字符串http_build_query ( mixed $query_data , string $numeric_prefix = ? , string $arg_separator = ? , int $enc_type = PHP_QUERY_RFC1738 ) : string参数解释:query_data:可以是数组或包含属性的对象,数组支持多维数组,对象只有公有权限的才会加入结果numeric_prefix.

2021-03-11 09:43:37 9524

原创 PHP判断是否移动端访问

function isMobile($server){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset($server['HTTP_X_WAP_PROFILE'])) { return true; } // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息 if (isset($server['HTTP_VIA']) && stris

2021-03-09 18:12:30 457

原创 PHP数组排序函数array_multisort()函数详解

array_multisort()这个函数可以对多个PHP数组进行排序,排序结果是所有的数组都按第一个数组的顺序进行排列——有点拗口,真的,并且我要只是这样说你一定也不明白。先举个例子:例如array_multisort($a,$b),$a,$b是两个数组,如果排序之后,$a数组的第3个元素被排到了第一位,那么$b的第三个元素不管他在$b中的大小都会排在第一位。看看下边的程序运行结果:<?php $a =array(100,80,50,10,0);$b = array("c","f","q",

2021-03-07 08:53:18 409

原创 php 转换编码之iconv与mb_convert_encoding

iconviconv ( string $in_charset , string $out_charset , string $str ) : string举例:iconv("UTF-8", "GBK//TRANSLIT", $str); // 从UTF8转为GBK, 遇到无法转换的字符用形似字符代替iconv("UTF-8", "GBK//IGNORE", $str); // 从UTF8转为GBK, 遇到无法转换的字符直接丢弃参数解析:$in_charset: 当前编码$out_cha

2021-03-05 19:24:43 871

原创 Discuz dmkdir函数解析

函数定义:function_core.phpfunction dmkdir($dir, $mode = 0777, $makeindex = TRUE){ if(!is_dir($dir)) { dmkdir(dirname($dir), $mode, $makeindex); @mkdir($dir, $mode); if(!empty($makeindex)) { @touch($dir.'/index.html'); @chmod($dir.'/index.html', 0777

2021-03-05 19:05:11 174

原创 Discuz!开发之文件加载路径函数libfile()介绍

定义位置:source\function\function_core.php函数代码function libfile($libname, $folder = '') { $libpath = '/source/'.$folder; if(strstr($libname, '/')) { list($pre, $name) = explode('/', $libname); $path = "{$libpath}/{$pre}/{$pre}_{$name}"; } else { $pa

2021-03-05 18:39:37 259

原创 php foreach+list进行数组迭代

$array = [ [1, 2], [3, 4],];foreach ($array as list($a, $b)) { echo "A: $a; B: $b\n";}以上会输出:A: 1; B: 2A: 3; B: 4实际就是把数组$value的值赋值给list()中的变量。list() 中的单元可以少于嵌套数组的,此时多出来的数组单元将被忽略:$array = [ [1, 2], [3, 4],];foreach ($array as

2021-03-03 15:52:35 320 1

原创 关于php中的 return用法

如果在一个函数中调用 return 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return 也会终止 eval() 语句或者脚本文件的执行。如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include 的或者 require 的,则控制交回调用文件。此外,如果当前脚本是被 include 的,则 return 的值会被当作 include 调用的返回值。如果在主脚本文件中调用 return,则脚本中止运行。如果当前脚本文件是在 php.ini 中的配置选项.

2021-03-03 14:07:12 396

原创 PHP 使用constant函数获取常量值

默认情况下可以直接使用echo来输出常量的值,但如果常量的名称是特殊符号,使用echo会报错。此时就要借助constant函数来输出举例:define('O(∩_∩)O',1);echo O(∩_∩)O; //直接报错echo constant('O(∩_∩)O'); //输出1...

2021-03-03 11:31:53 544

原创 判断字符串是否为空白

$string = '';// 方法一使用empty()empty($string); //true// 方法二使用ctype_space()ctype_space($string) //true更推荐使用ctype_space来判断是否为空白, 因为他将所有形式的空白都认定为空白(如制表、换行、空格),而empty不会。...

2021-03-03 11:26:36 866

原创 php is_callable 和 function_exists 和 method_exists区别

function_exists用于检测函数是否存在method_exists用户检测类中的方法是否存在is_callable既可以检测函数是否存在, 又可以检测类中的方法是否存在。 检测函数是否存在效果和function_exists一样,但**检测类中的方法是否存在会受private和protected影响,如果方法存在但无法调用同样也会返回false。**而method_exists不会,只要类中存在此方法就返回true。例:<?phpclass test{ private f

2021-03-03 11:05:01 193

原创 php流程语句冒号写法

将起始的左花括号替换为:, 结尾的右花括号替换为对应的endxxx;支持的流程语句: if、for、white、foreach、switch例:// endifif($a > 0){return true;}if($a > 0): return true; endif;// endforfor($i=1;$i<=2;$i++){echo $i;}for($i=1;$i<=2;$i++): echo $i; endfor;// endforeach$arra

2021-03-03 10:16:14 283

原创 CSS @supports解析

@supports()会检测括号中的声明,在浏览器支持该声明的情况下执行花括号中的代码。基本属性检测@supports (display: flex) { div { display: flex; }}not关键字@supports not (display: flex) { div { float: left; } }组合条件检测@supports (display: flex) and (-webkit-appearance: caret) {}也可以用括号将多个条件进行

2021-02-21 15:56:42 193

原创 浅析background-origin和background-clip

语法:background-origin{padding-box|border-box|content-box}background-clip{border-box|padding-box|content-box|no-clip}background-origin属性background-origin主要是配合background-position使用,用于设定图像的基准位置。默认情况下,图像的基准区域在padding-box区域下图(从左到右)是定义了background-origin为b

2021-02-20 10:17:43 133

原创 使用quotes属性为q标签设定引号类型

使用q标签可以在文字的头尾添加引号, 那么使用quotes属性则可以自定义头尾添加的引号类型q:lang(en) { quotes: '"' '"' "'" "'"; }输出:"This is a 'big' quote"

2021-02-19 12:59:13 213

原创 伪元素和伪类的区别

伪元素和伪类的根据区别就是:前者是创建出了一个新元素,而后者是一个已存在但你不能直接看到的元素。伪元素伪元素本身不存在在DOM文档中,它需要人为的去创建它。且就算你创建了伪元素,它也只是逻辑上存在,实际上也并不存在DOM文档中,也就是说你无法使用JS去获取改变它。伪类伪类它存在于DOM文档中,但如果你没有特别的去声明它,你就看不到它。总结伪元素是创建了一个新元素,而伪类本身就存在只不过不用特别声明伪元素使用:或者::声明(前者是css2的声明方式,后者是css3),而伪类只能使用: .

2021-02-19 12:00:19 6939 1

原创 HTML <br> 标签的 clear 属性

<br clear="right/left/all" /> 仅支持right、left、all三个值,并且只有在左对齐或右对齐的图像或表格起作用。效果:一:不使用clear属性<img src="image.png" align="left"><br/>2021年<br/>新年快乐二:使用clear属性定义为left, 直接清除左边界<img src="image.png" align="left"><br/>20

2021-02-13 17:59:55 513

原创 meta标签中的content-type和content-language的区别

content-type是告诉浏览器页面的字符集语言,content-language也是告诉浏览器页面的语言方式<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta http-equiv="Content-Language" content="zh-CN">上面的代码的意思就是:当前页面的语言是中文的,请浏览器使用UTF-8编码字符集进行解码显示。为什么要这样声明?因为任何一种语

2021-02-13 14:55:16 1930

原创 meta标签name属性值viewport解析

什么是viewport,这篇文章介绍的很详细,有兴趣的朋友可以点击这里阅读。因为内容太长,这边就不做过多说明,只做简要概况。什么是viewport?在手机浏览器中能看到网页内容的那块区域称为可视区域,viewport就相当于那块可视区域,但是它的实际大小可能比那块可视区域要大或者要小(一般来说都是大于可视区域),那具体是多大?不同设备它的viewport都不一样,没有固定的值。这就会造成在有些设备中如果viewport大于可视区域就会造成浏览器出现横向的滚动条。所以为了解决这个问题,viewport.

2021-02-13 14:48:18 1203

原创 meta标签robots属性值解析

robots.txt是放在网站中,文件级的网络蜘蛛授权;而robots Meta标签是放在网页中,一般用于部分网页需要单独设置的情况下。两者的功能是一样的。Meta robots标签必须放在和之间,格式:content中的值决定允许抓取的类型,必须同时包含两个值:是否允许索引(index)和是否跟踪链接(follow,也可以理解为是否允许沿着网页中的超级链接继续抓取)。共有4个参数可选,组成4个组合:index,follow:允许抓取本页,允许跟踪链接。index,nofollow:允许抓取本页,但

2021-02-13 13:59:07 667

原创 meta标签中的name属性和http-equiv属性解析

meta标签中的name属性和http-equiv属性解析1.name属性和http-equiv属性的区别2.name属性常用的属性值3.http-equiv属性常用的属性值1.name属性和http-equiv属性的区别name属性主要是告知搜索引擎有关页面的信息,传达页面想要表达的内容,如页面标题、关键词、简介、作者等。http-equiv属性主要是告知浏览器要以什么样的方式进行解析,让浏览器能够精确的显示你想要表达的内容,如页面编码、浏览模式、语言、缓存模式等。name属性和http-equ

2021-02-13 13:52:22 526

原创 Discuz!积分记录表common_credit_log中operation字段含义一览

'TRC' => '任务奖励积分', 'RTC' => '发表悬赏主题扣除积分', 'RAC' => '最佳答案获取悬赏积分', 'MRC' => '道具随即获取积分', 'TFR' => '积分转账转出', 'RCV' => '积分转账接收', 'CEC' => '积分兑换', 'ECU' => '通过 UCenter 兑换积分支出', 'SAC' => '出售附件获得积分', 'BAC' => '购买附件支出积分', 'P.

2021-02-13 10:25:51 485

原创 Discuz开发之后台表单函数

后台表单函数showformheader()创建表单头showformfooter()创建表单尾showsubmit()创建表单提交按钮showsetting()创建表单输入框showtableheader()创建表格头showformfooter()创建表格尾showsubmenu()创建二级导航栏shownav()创建面包屑导航栏showtips()创建提示信息showformheader()创建表单头showformheader($action,$extra,$name,$method);参数

2021-02-13 10:19:54 919 2

原创 Discuz deleterow函数解析

用于删除表格中的某行, 定义在static/js/admincp.jsfunction deleterow(obj) { var table = obj.parentNode.parentNode.parentNode.parentNode.parentNode; var tr = obj.parentNode.parentNode.parentNode; table.deleteRow(tr.rowIndex);}可配合addrow函数, 结合实际需求二次开发...

2021-02-13 09:57:22 161

原创 Discuz addrow函数解析

用于在表格中插入新行, 可结合实际需求自行二开函数定义:static\js\common.js使用示范:<!DOCTYPE html><html><head> <title>discuz中addrow函数demo</title> <meta charset="utf-8"></head><body><script type="text/javascript">

2021-02-13 09:51:45 516 1

原创 Discuz!开发之DB、CT类解析

DB类函数功能DB::table($tablename)获取正确带前缀的表名,转换数据库句柄DB::delete($tablename, 条件,条数限制)删除表中的数据DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent)插入数据操作DB::update($tablename, 数据(数组)条件)更新操作DB::fetch(查询后的资源)从结果集中取关联数组,注意如果结果中的两个或以上的列具有.

2021-02-13 09:50:34 382

原创 Discuz! showDialog函数介绍

函数定义:static\js\common.jsvar showDialogST = null;function showDialog(msg, mode, t, func, cover, funccancel, leftmsg, confirmtxt, canceltxt, closetime, locationtime) { clearTimeout(showDialogST); cover = isUndefined(cover) ? (mode == 'info' ? 0 : 1) : .

2021-02-12 22:47:13 377

原创 Discuz showWindow函数解析

函数定义static/js/common.jsshowWindow(k, url, mode, cache, v);参数解析:key默认值含义可选值及解释k(必填)浮窗的 keyurl(必填)get 方式 url 表示浮窗请求的地址 post 方式 url 表示浮窗提交的表单 idmode‘get’弹窗请求类型get: ajaxget 方式请求 url post: ajaxpost 方式请求 urlcache1是否缓存弹窗内容1:.

2021-02-12 22:45:07 1085

原创 Discuz!开发之HTML转Discuz代码(bbcode)函数html2bbcode()

定义文件:\source\function\function_editor.phpfunction html2bbcode($text) { $text = strip_tags($text, '<table><tr><td><b><strong><i><em><u><a><div><span><p><strike><blockquote&.

2021-02-12 21:58:50 1245 1

原创 Discuz!文件缓存函数writetocache()解析

文件:/source/function/function_cache.phpfunction writetocache($script, $cachedata, $prefix = 'cache_') { global $_G; $dir = DISCUZ_ROOT.'./data/sysdata/'; if(!is_dir($dir)) { dmkdir($dir, 0777); } if($fp = @fopen("$dir$prefix$script.php", 'wb').

2021-02-12 21:57:01 891

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除