内容列表
js 相关函数
//是否为数组判定 if(Object.prototype.toString.call(value) == '[object Array]') { //是 } //是否为对象判定 if(Object.prototype.toString.call(value) == '[object Object]') { //是 } //是否为数字判定 if(!isNaN(parseFloat(value)) && isFinite(value)){ //是 } // 添加或删除数组中的元素 ,会改变原数组 Array.splice(1,2,3) //1 必需。数组元素的下标,规定从何处添加/删除元素 //2 可选。删除数量 //3 可选。要添加到数组的新元素 // 返回被删除的数组 //数组(字符串)中返回选定的元素 ,不会改变原始数组(字符串) Array.slice(1,2) //返回选定的元素。 //1 可选。开始截取的下标,负数表示倒数第几个元素 //2 可选。结束截取的下标, e.preventDefault();//阻止默认行为 e.stopPropagation();//阻止冒泡 //获取随机字符串 function randomString(length) { let chars = 'abcdefghijklmnopqrstuvwxyz'; let result = ''; for (let i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; return result; } //信息存储 function saveValue(key,value) { value = JSON.stringify(clone(value)) localStorage.setItem(key, value); } function getValue(key) { value = localStorage.getItem(key); return JSON.parse(value) } //清除form表单内容 function clearinput(id) { $(":input",id) .not(":button",":reset","hidden","submit") .val("") .removeAttr("checked") .removeAttr("selected"); } //监听横竖屏切换 window.addEventListener('orientationchange',function () { window.orientation // 0 横屏 90 竖屏 //xxxxxxxxxx }, true); //协议 window.location.protocol //域名 window.location.host //路径 window.location.pathname; //完整地址 window.location.href //获取单个url参数 function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); } // 获取时间 function formatCurrentDate() { let now:any = new Date(); let year :any= now.getFullYear(); //得到年份 let month :any= now.getMonth();//得到月份 let date:any = now.getDate();//得到日期 let day :any= now.getDay();//得到周几 let hour :any= now.getHours();//得到小时 let minu :any= now.getMinutes();//得到分钟 let sec :any= now.getSeconds();//得到秒 let MS :any= now.getMilliseconds();//获取毫秒 let week:any; month = month + 1; if (month < 10) month = "0" + month; if (date < 10) date = "0" + date; if (hour < 10) hour = "0" + hour; if (minu < 10) minu = "0" + minu; if (sec < 10) sec = "0" + sec; if (MS < 100 )MS = "0" + MS; let arr_week:any = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); week = arr_week[day]; let time:any = ""; // time = year + "年" + month + "月" + date + "日" + " " + hour + ":" + minu + ":" + sec + " " + week; return year + "-" + month + "-" + date ; } //监听页面获取焦点,可用作页面返回验证 next_page = true window.addEventListener('focus', function() { if(next_page){ page = 0 loadmore() } next_page = false });
2023-11-25
php命令行受 php.ini 配置的影响内容
这些函数的行为受  中的设置影响。名字默认可修改范围更新日志assert.active"1"PHP_INI_ALL自 PHP 8.3.0 起弃用assert.bail"0"PHP_INI_ALL自 PHP 8.3.0 起弃用assert.warning"1"PHP_INI_ALL自 PHP 8.3.0 起弃用assert.callbackNULLPHP_INI_ALL自 PHP 8.3.0 起弃用assert.quiet_eval"0"PHP_INI_ALL从 PHP 8.0.0 移除assert.exception"1"PHP_INI_ALL在 PHP 8.0.0 之前,默认是 "0",自 PHP 8.3.0 起弃用enable_dl"1"PHP_INI_SYSTEM本过时特性将肯定会在未来被移除。max_execution_time"30"PHP_INI_ALL max_input_time"-1"PHP_INI_PERDIR max_input_nesting_level"64"PHP_INI_PERDIR max_input_vars1000PHP_INI_PERDIR zend.enable_gc"1"PHP_INI_ALL 有关 PHP_INI_* 样式的更多详情与定义,见 配置可被设定范围。 下面是配置指令的简短说明。 assert.active bool 激活 assert() 断言评测。应该使用 zend.assertions 来控制 assert() 的行为。 警告 本特性已自 PHP 8.3.0 起废弃。强烈建议不要使用本特性。 assert.bail bool 失败的断言将中止脚本。 警告 本特性已自 PHP 8.3.0 起废弃。强烈建议不要使用本特性。 assert.warning bool 为每个失败的断言产生一条 PHP 警告信息。 警告 本特性已自 PHP 8.3.0 起废弃。强烈建议不要使用本特性。 assert.callback string 断言失败后要调用的回调函数。 警告 本特性已自 PHP 8.3.0 起废弃。强烈建议不要使用本特性。 assert.quiet_eval bool 警告 此功能自 PHP 8.0.0 起移除。 在断言表达式执行时 error_reporting() 使用当前的设置。如果启用了,在执行时错误将不会被显示(隐式的 error_reporting(0))。如果禁用了,错误将根据 error_reporting() 的设置来显示。 assert.exception bool 在断言(assert)失败时产生 AssertionError 异常。 警告 本特性已自 PHP 8.3.0 起废弃。强烈建议不要使用本特性。 enable_dl bool 该指令允许开启或关闭使用 dl() 动态加载 PHP 模块。 关闭动态加载的主要原因是为了安全。通过动态加载,有可能忽略所有 open_basedir 限制。默认允许动态加载。 max_execution_time int 这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。这有助于防止写得不好的脚本占尽服务器资源。默认设置为 30。从命令行运行 PHP 时,默认设置为 0。 在非 Windows 系统上,最大执行时间不会影响系统调用和系统操作等。更多细节参见 set_time_limit()。 你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。 max_input_time int 脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。它从接收所有数据到开始执行脚本进行测量的。默认设置为 -1,意味着使用 max_execution_time 的值做为默认值,如果不想限制,请设置为 0。 max_input_nesting_level int 设置 输入变量 的最大允许嵌套的深度。(例如 、) max_input_vars int 接受多少 输入的变量(限制分别应用于 $_GET、$_POST 和 $_COOKIE 超全局变量)指令的使用减轻了以哈希碰撞来进行拒绝服务攻击的可能性。如有超过指令指定数量的输入变量,将会导致 E_WARNING 的产生,更多的输入变量将会从请求中截断。 zend.enable_gc bool 启用或禁用循环引用记数收集器。
2023-11-03
自适应页面
//css body { -webkit-box-sizing: border-box; box-sizing: border-box; background-color: #fff; } .page_loading_box{ position: fixed; width: 100vw; height: 100vh; background: #fff; z-index: 9999999; left: 0; top: 0; text-align: center; } .page_loading { position: absolute; left: 0; top: 30vh; right: 0; margin: auto; width: 8vw; height: 8vw; border-top: 4px solid #C9151E; border-right: 4px solid transparent; border-radius: 50%; -webkit-animation: 1s spin linear infinite; animation: 1s spin linear infinite; } -webkit-@keyframes spin { -webkit-from { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); } -webkit-to { -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg); } } @-webkit-keyframes spin { from { -webkit-transform: rotate(0deg); transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes spin { from { -webkit-transform: rotate(0deg); transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }//js var curr_rem = 0;//用于存储全局参数 function w_load() { (function(designWidth, designHeight , maxWidth) { let doc = document, win = window, docEl = doc.documentElement, remStyle = document.createElement("style"), tid; function refreshRem() { let wind_width = docEl.getBoundingClientRect().width; let wind_height = docEl.getBoundingClientRect().height; let width = wind_width; if(designHeight){ let hd = wind_width / (designWidth / designHeight) if( hd > wind_height ) maxWidth = (designWidth / designHeight) * wind_height } wind_width>=maxWidth && (width=maxWidth); console.log( width ) //var rem = width * 10 / designWidth; curr_rem = width * 10 / designWidth;//10=设计图宽度/rem宽度 remStyle.innerHTML = 'html{font-size:' + curr_rem+ 'px;}'; } if (docEl.firstElementChild) { docEl.firstElementChild.appendChild(remStyle); } else { var wrap = doc.createElement("div"); wrap.appendChild(remStyle); doc.write(wrap.innerHTML); wrap = null; } //要等 wiewport 设置好后才能执行 refreshRem,不然 refreshRem 会执行2次; refreshRem(); win.addEventListener("resize", function() { clearTimeout(tid); //防止执行两次 tid = setTimeout(refreshRem, 300); }, false); win.addEventListener("pageshow", function(e) { if (e.persisted) { // 浏览器后退的时候重新计算 clearTimeout(tid); tid = setTimeout(refreshRem, 300); } }, false); win.addEventListener('orientationchange',function () { clearTimeout(tid); tid = setTimeout(refreshRem, 300); }, true); })(2048, 1536,2048); //$('.page_loading_box').hide() } //页面不能配置默认字体大小 w_load(); //获得rem对应px值 需要等页面计算完成后生效 function rem2px(res) { return curr_rem * res ; } //html <!--页面加载start--> <div class="page_loading_box" > <div class="page_loading"></div> </div> <!--页面加载end-->  
2023-09-30