#495
展开↯#496
作者:广西南宁市
swiper多个轮播图盒子
指示器分页器
js要写在css html后面 #,广西南宁市,2018-01-12,16:30:25,
统计加载点击代码
#,广西南宁市,2018-01-12,17:26:45,
上面代码是静态页面js错误的,下面是后台代码
#,广西南宁市,2018-01-17,12:54:52, #,广西河池市宜州市,2018-06-21,11:00:47,@2 ,
404错误页面
#,广西河池市宜州市,2018-06-21,11:18:38,@4 ,
兼容手机版移动设备404错误页面
#,广西河池市宜州市,2018-06-21,11:20:03,
#,广西河池市宜州市,2018-06-21,14:58:24,
IIS 7 以上 web.config 中设置全局的错误时,如果用编辑器,可能会提示“锁定冲突”,原因是全局的设置锁定了此项,不让修改。 解决方法如下:

<script>
var swiper = new Swiper('.swiper-container', {
slidesPerView: 3,
spaceBetween: 30,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
});
</script>
Run code
Cut to clipboard
指示器分页器
<script>
var mySwipers = new Swiper('.swiper-container2', {
//autoplay: true,//可选选项,自动滑动
navigation: {
nextEl: '.you',
prevEl: '.zuo',
},
spaceBetween: 0,
slidesPerView: 3
})
</script>
Run code
Cut to clipboard
js要写在css html后面
统计加载点击代码
<script> /*异步加载 - 在线交流 - 站长统计 */
var gz_weburl='/';
var lang='cn';
var classnow='314';
var id='';
var url=gz_weburl+'include/interface/uidata.php?lang='+lang,h = 'http://www.ihosu.com/index.php/Home/About/index/cid/314.html';
if(h.indexOf("preview=1")!=-1)url = url + '&theme_preview=1';
$.ajax({
type: "POST",
url: url,
dataType:"json",
success: function(msg){
var c = msg.config;
if(c.gz_stat==1){ //站长统计
var navurl=classnow==10001?'':'../';
var stat_d=classnow+'-'+id+'-'+lang;
var url = gz_weburl+'include/stat/stat.php?type=para&u='+navurl+'&d='+stat_d;
$.getScript(url);
}
}
});
//var metClicks = $(".metClicks");//点击次数
var ClicksListnow='';
var weburl='/';
if(ClicksListnow){
//var DataClicks = metClicks.data("metclicks");
//ClicksStr=DataClicks.split("|");
var ClicksModule = 'news';//ClicksStr[0],ClicksListnow = ClicksStr[1];
var urlw = weburl+'include/hits.php?type='+ClicksModule+'&id='+ClicksListnow;
$.ajax({
type: "POST",
url: urlw,
dataType:"text",
success: function(msg){
//var t = msg.split('"');
//metClicks.html(t[1]);
}
});
}
</script>
Run code
Cut to clipboard
上面代码是静态页面js错误的,下面是后台代码
<script> /*异步加载 - 在线交流 - 站长统计 */
var gz_weburl='/';
var lang='cn';
var classnow='{$cid}';
var id='<?php echo $_GET['id'];?>';
var url=gz_weburl+'include/interface/uidata.php?lang='+lang,h = '<?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?>';
if(h.indexOf("preview=1")!=-1)url = url + '&theme_preview=1';
$.ajax({
type: "POST",
url: url,
dataType:"json",
success: function(msg){
var c = msg.config;
if(c.gz_stat==1){ //站长统计
var navurl=classnow==10001?'':'../';
var stat_d=classnow+'-'+id+'-'+lang;
var url = gz_weburl+'include/stat/stat.php?type=para&u='+navurl+'&d='+stat_d;
$.getScript(url);
}
}
});
//var metClicks = $(".metClicks");//点击次数
var ClicksListnow='<?php echo $_GET['id'];?>';
var weburl='/';
if(ClicksListnow){
//var DataClicks = metClicks.data("metclicks");
//ClicksStr=DataClicks.split("|");
var ClicksModule = 'news';//ClicksStr[0],ClicksListnow = ClicksStr[1];
var urlw = weburl+'include/hits.php?type='+ClicksModule+'&id='+ClicksListnow;
$.ajax({
type: "POST",
url: urlw,
dataType:"text",
success: function(msg){
//var t = msg.split('"');
//metClicks.html(t[1]);
}
});
}
</script>
Run code
Cut to clipboard
pagination: {
el: '.swiper-pagination',
clickable: true,
}
Run code
Cut to clipboard
404错误页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>404-对不起!您访问的页面不存在</title>
<style type="text/css">
.head404{ width:580px; height:234px; margin:50px auto 0 auto; background:url(http://www.resonance.com.cn/head404.png) no-repeat; }
.txtbg404{ width:499px; height:169px; margin:10px auto 0 auto; background:url(http://www.resonance.com.cn/txtbg404.png) no-repeat;}
.txtbg404 .txtbox{ width:390px; position:relative; top:30px; left:60px;color:#eee; font-size:13px;}
.txtbg404 .txtbox p {margin:5px 0; line-height:18px;}
.txtbg404 .txtbox .paddingbox { padding-top:15px;}
.txtbg404 .txtbox p a { color:#eee; text-decoration:none;}
.txtbg404 .txtbox p a:hover { color:#FC9D1D; text-decoration:underline;}
</style>
</head>
<body bgcolor="#494949">
<div class="head404"></div>
<div class="txtbg404">
<div class="txtbox">
<p class="paddingbox">对不起,您请求的页面不存在、或已被删除、或暂时不可用</p>
<p>请点击以下链接继续浏览网页</p>
<p>》<a style="cursor:pointer" onclick="history.back()">返回上一页面</a></p>
<p>》<a href="/">返回网站首页</a></p>
</div>
</div>
</body>
</html>
Run code
Cut to clipboard
兼容手机版移动设备404错误页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>/(ㄒoㄒ)/~~</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>*{padding:0;margin:0}a{text-decoration:none}.notfoud-container .img-404{height:155px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARUAAAEGCAYAAABLrAHXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyMDBBQzI5ODU4NjNFMTExOENDN0E4Qzc0NTMzRDM1OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMzA0QkFCNEVFRkQxMUU0QkM0OUJCNTk4RTIyMEUyMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMzA0QkFCM0VFRkQxMUU0QkM0OUJCNTk4RTIyMEUyMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxNzFmOGFkMy00MzRlLTRkYmUtOTJkYi04ODY1ZTE0NmI3NDQiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmMDY2OGM2MS0yOTZlLTExNzgtYmU3NS04ODg3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) center center no-repeat;-webkit-background-size:150px auto;margin-top:40px;margin-bottom:20px}.notfoud-container .notfound-p{line-height:22px;font-size:17px;padding-bottom:15px;border-bottom:1px solid #f6f6f6;text-align:center;color:#262b31}.notfoud-container .notfound-reason{color:#9ca4ac;font-size:13px;line-height:13px;text-align:left;width:210px;margin:0 auto}.notfoud-container .notfound-reason p{margin-top:13px}.notfoud-container .notfound-reason ul li{margin-top:10px;margin-left:36px}.notfoud-container .notfound-btn-container{margin:40px auto 0;text-align:center}.notfoud-container .notfound-btn-container .notfound-btn{display:inline-block;border:1px solid #ebedef;background-color:#239bf0;color:#fff;font-size:15px;border-radius:5px;text-align:center;padding:10px;line-height:16px;white-space:nowrap}</style>
</head>
<body>
<div class="notfoud-container">
<div class="img-404">
</div>
<p class="notfound-p">哎呀迷路了...</p>
<div class="notfound-reason">
<p>可能的原因:</p>
<ul>
<li>原来的页面不存在了</li>
<li>我们的服务器被外星人劫持了</li>
</ul>
</div>
<div class="notfound-btn-container">
<a class="notfound-btn" href="/">返回首页</a>
</div>
</div>
</body>
</html>
Run code
Cut to clipboard
<?php
$config = array(
'DEFAULT_THEME' => SHOUJIZHANOK
,'TMPL_EXCEPTION_FILE' => APP_PATH . '/Tpl/Home/'.SHOUJIZHANOK.'/Public/exception.html'
);
return $config ;
Run code
Cut to clipboard
\GZphp\Conf\Home
Run code
Cut to clipboard
$the_host = $_SERVER['HTTP_HOST'];//取得当前域名
if($the_host == SHOUJIZHANOKURL){
//手机
define('SHOUJIZHANOK', 'mDefault');
}else{
define('SHOUJIZHANOK', 'Default');
}
Run code
Cut to clipboard
IIS 7 以上 web.config 中设置全局的错误时,如果用编辑器,可能会提示“锁定冲突”,原因是全局的设置锁定了此项,不让修改。 解决方法如下:
文章:常用html、demo代码 发表时间:2018-01-12, 14:49:27
#497
作者:广西南宁市
文章:站时系扣,坐时解扣-西装礼仪 发表时间:2018-06-20, 22:18:50
#498
作者:广西河池市宜州市
<script type="text/javascript">
window.onload=function(){
var obox=document.getElementById("box");
var oshow=document.getElementById("show");
var nodes=obox.getElementsByTagName("*");
oshow.innerHTML=nodes.length;
}
</script>
Run code
Cut to clipboard
文章:模仿优酷首页的一些前端布局 发表时间:2018-06-20, 16:13:14
#499
作者:广西河池市宜州市
Jquery 兼容写法
jQuery event 事件对象,包含有 event.offsetX, event.clientX,event.pageX,event.screenX等属性(firefox 浏览器中, offsetX 为 undefined)。firefox 获取 offsetX / offsetY 的值,需要通过 event 对象的属性 originalEvent



jQuery event 事件对象,包含有 event.offsetX, event.clientX,event.pageX,event.screenX等属性(firefox 浏览器中, offsetX 为 undefined)。firefox 获取 offsetX / offsetY 的值,需要通过 event 对象的属性 originalEvent
$(function(){
$("#box").mousedown(function(event){
console.log(event.offsetX, event.offsetY);
console.log(event.clientX, event.clientY);
console.log(event.pageX, event.pageY);
console.log(event.screenX, event.screenY);
/* firefox */
console.log(event.originalEvent.layerX, event.originalEvent.layerY);
});
});
Run code
Cut to clipboard
文章:模仿优酷首页的一些前端布局 发表时间:2018-06-20, 16:12:18
#500
作者:广西河池市宜州市
var oZuolist = document.getElementsByClassName('zuo2');
for(var i=0;i<oZuolist.length;i++){
oZuolist[i].onmouseover=function(){
//注意涉及到这个对象不能使用oZuolist[i],要用this代替
}
}
Run code
Cut to clipboard
var oZuo = document.getElementsByClassName('zuo2'); 获取的是一个dom集合 而不是一个dom 对象,你无法对js的集合绑定事件
var oZuo = document.getElementsByClassName('zuo2')[0]; 就可以
Run code
Cut to clipboard
文章:模仿优酷首页的一些前端布局 发表时间:2018-06-20, 16:10:13
#501
作者:广西河池市宜州市
js取整数、取余数的方法
1.丢弃小数部分,保留整数部分
parseInt(5/2)
2.向上取整,有小数就整数部分加1
Math.ceil(5/2)
3,四舍五入.
Math.round(5/2)
4,向下取整
Math.floor(5/2)
Math 对象的方法
FF: Firefox, N: Netscape, IE: Internet Explorer
方法 描述 FF N IE
abs(x) 返回数的绝对值 1 2 3
acos(x) 返回数的反余弦值 1 2 3
asin(x) 返回数的反正弦值 1 2 3
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值 1 2 3
atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间) 1 2 3
ceil(x) 对一个数进行上舍入。 1 2 3
cos(x) 返回数的余弦 1 2 3
exp(x) 返回 e 的指数。 1 2 3
floor(x) 对一个数进行下舍入。 1 2 3
log(x) 返回数的自然对数(底为e) 1 2 3
max(x,y) 返回 x 和 y 中的最高值 1 2 3
min(x,y) 返回 x 和 y 中的最低值 1 2 3
pow(x,y) 返回 x 的 y 次幂 1 2 3
random() 返回 0 ~ 1 之间的随机数 1 2 3
round(x) 把一个数四舍五入为最接近的整数 1 2 3
sin(x) 返回数的正弦 1 2 3
sqrt(x) 返回数的平方根 1 2 3
tan(x) 返回一个角的正切 1 2 3
toSource() 代表对象的源代码 1 4 -
valueOf() 返回一个 Math 对象的原始值
Run code
Cut to clipboard
文章:模仿优酷首页的一些前端布局 发表时间:2018-06-20, 16:08:28
#502
作者:广西河池市宜州市
jq和js用mousemove获取鼠标当前位置
#,广西河池市宜州市,2018-06-20,16:07:00,
javascript判断鼠标移动的方向(左,上,右,下)
核心是 Math.round( ( ( ( Math.atan2( y, x ) * ( 180 / Math.PI ) 返回四个值 #,广西河池市宜州市,2018-06-20,16:07:23,@1 ,
左右还可用正负值判断方向 #,广西河池市宜州市,2018-06-20,16:07:57,
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>jq获取鼠标的位置</title>
<style>
div{
width: 500px;
height: 500px;
background-color: #585858;
margin: 0;
padding: 0;
}
</style>
<script type="text/javascript" src="../../js/jquery-3.1.1.min.js"></script>
</head>
<body>
<div id="d">
</div>
</body>
<script type="text/javascript">
$('#d').mousemove(function(f){
/* var xx = f.originalEvent.x|| f.originalEvent.layerX||0;
var yy = f.originalEvent.y|| f.originalEvent.layerY||0;*/
var xx = f.pageX;
var yy = f.pageY;
$(this).text(xx+','+yy);
})
/*根据出现的“originalEvent”一词可猜测题主的本意是比较jquery下
e.pageX和e.originalEvent.x的区别(因为originalEvent是jq在对构造一个jq版e对象后引用的原始e对象)。
根据jq源码,jq版e对象下的pageX和原生的pageX是一致的,但是增加了对旧版本IE的实现部分。
于是题目可蜕化为原生e.pageX与e.x的区别,以及jq为IE8-浏览器实现的e.pageX与原生e.x的区别。
考虑jq的跨平台特性,我们在不清楚具体情况的时候,直接通过其补丁的实现方式来猜测属性的定义。
根据jq对无原生pageX的浏览器的补丁实现
event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 )
- ( doc && doc.clientLeft || body && body.clientLeft || 0 );
到这里我们已经基本清楚pageX的涵义,是包含了滚动条的计算的。
实际上,e.pageX在各(支持的)浏览器下的表现都是一致的,都是表达点击位置相对于整个文档的位置,用题主的话说就是“计算了滚动条”。
兼容性来说,e.pageX除了在IE系列中低于IE9的版本中是不支持的,IE9+和其它主流浏览器全部一致支持。
可是e.x的情况很复杂……
首先,fx不支持e.x。这没啥好说的。
其次,除IE外的其它主流浏览器,opera、chrome(以及其它同内核的浏览器),都支持e.x属性,
其值为“相对可视区域的坐标”——没错,对它们来说,e.x == e.clientX。用题主的话说就是“没有计算滚动条”。
再来看看e.x属性的发明者IE。IE全系列支持e.x
被点击对象所在的坐标系(即最近一个指定position: relative的tag的左上角的border外边界为原点)的坐标位置。
如果自身及上层均没有指定position: relative属性,则蜕变为相对于“相对可视区域的坐标”。
题外话,通过F12发现,IE一旦涉及滚动条后计算居然不是整像素数,而是会出现误差小数的!*/
</script>
</html>
<!--<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript获得鼠标位置</title>
</head>
<body>
<script>
function mouseMove(ev)
{
Ev= ev || window.event;
var mousePos = mouseCoords(ev);
document.getElementById("xxx").value = mousePos.x;
document.getElementById("yyy").value = mousePos.y;
}
function mouseCoords(ev)
{
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return{
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
document.onmousemove = mouseMove;
</script>
鼠标X轴:
<input id=xxx type=text>
鼠标Y轴:
<input id=yyy type=text>
</body> -->
Run code
Cut to clipboard
javascript判断鼠标移动的方向(左,上,右,下)
function(wrap){
var wrap = document.getElementById(wrap);
var hoverDir = function(e){
var w = wrap.offsetWidth,
h = wrap.offsetHeight,
x = ( e.clientX - wrap.offsetLeft - ( w / 2 ) ) * ( w > h ? ( h / w ) : 1 ),
y = (e.clientY - wrap.offsetTop - (h / 2)) * (h > w ? (w / h) : 1),
// 上(0) 右(1) 下(2) 左(3)
direction = Math.round( ( ( ( Math.atan2( y, x ) * ( 180 / Math.PI ) ) + 180 ) / 90) + 3 ) % 4,
eventType = e.type,
dirName = new Array('上方','右侧','下方','左侧');
if( e.type == 'mouseover' || e.type == 'mouseenter' ){
wrap.innerHTML = dirName[direction] + '进入';
}else{
wrap.innerHTML = dirName[direction] + '离开';
}
}
if( window.addEventListener ){
wrap.addEventListener( 'mouseover',hoverDir,false );
wrap.addEventListener( 'mouseout',hoverDir,false );
}else if( window.attachEvent ){
wrap.attachEvent( 'onmouseenter',hoverDir );
wrap.attachEvent( 'onmouseleave',hoverDir );
}
}
Run code
Cut to clipboard
核心是 Math.round( ( ( ( Math.atan2( y, x ) * ( 180 / Math.PI ) 返回四个值
左右还可用正负值判断方向
n[0].onload = function() {
n.data("loaded", true);
r.on("mousemove",
function(e) {
if (!n.data("loaded")) return;
var t, r, i, o, l, c;
c = $(this).width();
if (a.width != c) {
u.widthCover = c;
u.heightCover = c / u.scale;
r = $(this).offset().left;
n.css({
width: 3 * u.widthCover + "px",
height: 3 * u.heightCover + "px"
});
a.width != c
}
t = Math.abs(e.pageX - r + 5);
f = t * 100 / u.widthCover;
f = f > 100 ? 100 : f;
s.css({
width: f + "%"
});
i = Math.floor(t * 7 / u.widthCover);
o = -1 * (i % 3) * u.widthCover;
l = -1 * Math.floor(i / 3) * u.heightCover;
if (a.left == o && a.top == l) {
return
} else {
a.left = o;
a.top = l
}
n.css({
left: o + "px",
top: l + "px"
})
});
r.show()
}
Run code
Cut to clipboard
文章:模仿优酷首页的一些前端布局 发表时间:2018-06-20, 16:05:28
#503
作者:广西河池市宜州市
con.style.backgroundPosition=x+"px "+y+"px";
可以兼容所有的浏览器,但要注意第一个“px ”中有一个空格
Run code
Cut to clipboard
直接获取
document.querySelectorAll("div.aa")
类似属性选择器的写法
document.querySelectorAll("div[class='aa']")
补充一下还可以not选择器
document.querySelectorAll(".aa:not(ul)")
Run code
Cut to clipboard
//将NodeList转换成Array
function transformList(list) {
var arr = [];
for(var i = 0; i < list.length; i++) {
arr.push(list[i]);
}
return arr;
}
//查找一个父节点下指定类名的子节点
function getParentdElement(parentNode, childName) {
//如果父节点parentNode含有指定类名childName,这个节点就是目标节点
if (parentNode.className.search(childName) !== -1) {
console.log("if------");
console.log(parentNode);
return parentNode;
} else {
//父节点不含有指定类名childName,递归查找它的子节点。
var nodes = parentNode.childNodes;
//将子节点的list转换成标准数组并且过滤掉Text元素
nodes = transformList(nodes).filter(function(item){
if(item.nodeType !== 3) {
return item;
} else{ }
});
//如果子节点数组中有值,则递归查找
if(nodes.length) {
nodes.forEach(function(item) {
getParentdElement(item, childName);
});
}
console.log("else------");
console.log(nodes);
}
}
console.log(getParentdElement(document.querySelector(".parent"), "right"))
Run code
Cut to clipboard
文章:模仿优酷首页的一些前端布局 发表时间:2018-06-20, 16:03:30
#505
作者:广西
https://m.baidu.com/sf_baijiahao/s?id=1590655925964277851&wfr=spider&for=pc #,广西河池市宜州市,2018-06-14,09:58:15,
平常场合:
如果穿单排一粒扣西装,扣与不扣均可((系上端庄,不系潇洒))

单排一粒扣西装
如果是单排两粒扣西装,扣子全部不扣表示随意、轻松;扣一面上粒,表示庄重,而全扣就不合适了
如果是单排三粒扣西装,扣子全部不扣表示随意、轻松;只扣中间一扣表示正统;扣上面两粒,表示庄重,全扣也是不对的

单排三粒扣西装
三粒扣的话
上面的叫sometimes (经常)
中间的叫always (总是)
下面的叫never (从不)
扣满三粒。。。那是没文化的代言词。。。
西服钮扣扣法的基本原则是:双排扣全扣,单排扣扣上不扣下;双排扣西服靠近领口的多为装饰扣,不必扣上;单排扣的西服基本遵循扣上不扣下的原则
依照目前国际西装着装礼仪,男士站时系扣,坐时解扣
站时系扣
男士在站立的时候,请养成把西装扣好的习惯。因为这样您在讲话、比手势的时候,西装才不会随着您的肢体乱跑,整体线条看起来更显干净利落:
如果西装只有一粒扣子,请直接扣好
单排两粒扣的西装,只扣上面那一颗扣子就行

单排两粒扣西装
如果是单排三粒扣的西装,可以只扣中间那一颗,也可以扣上面的第一颗与第二颗扣子
如果是双排扣西装,可全部扣,亦可只扣上面一粒,表示轻松 、时髦,但不可不扣((双排扣西装的设计风格偏于稳重,纽扣的系法也相对保守))
如果穿三件套西装,则应扣好马甲上所有的扣子,外套的扣子不扣

三件套西装
按照约定俗成的习惯,最下面的那粒是不扣上的,除非去礼拜或者上法庭这样极其严肃的场合

双排扣西装
坐时解扣
一般来讲,若男士的西装太合身,当他没有解开西装扣就坐下时,整件西装外套就会被撑向两旁,不仅会在腹部出现横向紧绷的皱折,也会令肢体无法自由伸展,动作显得局促和紧张:
依照目前国际西装着装礼仪,男士坐下时,必须解开西装扣,如此西装才能随着身体的弧度,自然服贴地顺势而下,线条看起来比较流畅,也不会有束缚的感觉,也才能舒适自在地坐在位子上。
当然,西服上有扣与不扣讲究的纽扣并非只是前襟上的几粒。别忘了西服袖口还各有四粒纽扣呢,部分西服这四粒纽扣是直接钉上去的假纽扣,但是真正上佳的定制西服,最前端的两粒纽扣是真的,是可以解开的

西装是男士经常穿着的服装,所以,除了要注意不同款式扣子的扣法外,还应该注意搭配,如身上的颜色不能超过三种颜色或三种色系,在出席正式场合的时候,袜子也很讲究,不能穿尼龙丝袜和白色的袜子
建议:
各位男士,平时可多做西装解扣和系扣的练习:无论解扣或系扣,都不能低头看着西装,要以非常流畅、自然的手势来进行;并请记得“由下往上”依序解扣,而系扣时则要由“由上往下”依序扣起!
注意:
西装钮扣有装饰功能,扣法大有讲究。双排西装钮扣在任何正式场合都应扣上,否则给人以轻浮不稳重之感。单排扣西装如有两粒扣子,扣顶端一颗;3粒扣的,扣顶端前两颗。当然,单排西服也可以不扣,衣襟敞开,也能给人以轻松、潇洒之感
平常场合:
如果穿单排一粒扣西装,扣与不扣均可((系上端庄,不系潇洒))
单排一粒扣西装
如果是单排两粒扣西装,扣子全部不扣表示随意、轻松;扣一面上粒,表示庄重,而全扣就不合适了
如果是单排三粒扣西装,扣子全部不扣表示随意、轻松;只扣中间一扣表示正统;扣上面两粒,表示庄重,全扣也是不对的
单排三粒扣西装
三粒扣的话
上面的叫sometimes (经常)
中间的叫always (总是)
下面的叫never (从不)
扣满三粒。。。那是没文化的代言词。。。
西服钮扣扣法的基本原则是:双排扣全扣,单排扣扣上不扣下;双排扣西服靠近领口的多为装饰扣,不必扣上;单排扣的西服基本遵循扣上不扣下的原则
依照目前国际西装着装礼仪,男士站时系扣,坐时解扣
站时系扣
男士在站立的时候,请养成把西装扣好的习惯。因为这样您在讲话、比手势的时候,西装才不会随着您的肢体乱跑,整体线条看起来更显干净利落:
如果西装只有一粒扣子,请直接扣好
单排两粒扣的西装,只扣上面那一颗扣子就行
单排两粒扣西装
如果是单排三粒扣的西装,可以只扣中间那一颗,也可以扣上面的第一颗与第二颗扣子
如果是双排扣西装,可全部扣,亦可只扣上面一粒,表示轻松 、时髦,但不可不扣((双排扣西装的设计风格偏于稳重,纽扣的系法也相对保守))
如果穿三件套西装,则应扣好马甲上所有的扣子,外套的扣子不扣
三件套西装
按照约定俗成的习惯,最下面的那粒是不扣上的,除非去礼拜或者上法庭这样极其严肃的场合
双排扣西装
坐时解扣
一般来讲,若男士的西装太合身,当他没有解开西装扣就坐下时,整件西装外套就会被撑向两旁,不仅会在腹部出现横向紧绷的皱折,也会令肢体无法自由伸展,动作显得局促和紧张:
依照目前国际西装着装礼仪,男士坐下时,必须解开西装扣,如此西装才能随着身体的弧度,自然服贴地顺势而下,线条看起来比较流畅,也不会有束缚的感觉,也才能舒适自在地坐在位子上。
当然,西服上有扣与不扣讲究的纽扣并非只是前襟上的几粒。别忘了西服袖口还各有四粒纽扣呢,部分西服这四粒纽扣是直接钉上去的假纽扣,但是真正上佳的定制西服,最前端的两粒纽扣是真的,是可以解开的
西装是男士经常穿着的服装,所以,除了要注意不同款式扣子的扣法外,还应该注意搭配,如身上的颜色不能超过三种颜色或三种色系,在出席正式场合的时候,袜子也很讲究,不能穿尼龙丝袜和白色的袜子
建议:
各位男士,平时可多做西装解扣和系扣的练习:无论解扣或系扣,都不能低头看着西装,要以非常流畅、自然的手势来进行;并请记得“由下往上”依序解扣,而系扣时则要由“由上往下”依序扣起!
注意:
西装钮扣有装饰功能,扣法大有讲究。双排西装钮扣在任何正式场合都应扣上,否则给人以轻浮不稳重之感。单排扣西装如有两粒扣子,扣顶端一颗;3粒扣的,扣顶端前两颗。当然,单排西服也可以不扣,衣襟敞开,也能给人以轻松、潇洒之感
文章:站时系扣,坐时解扣-西装礼仪 发表时间:2018-06-14, 09:52:35
#506
作者:广西河池市宜州市
mysql数值字符串类型的按照数值进行排序
order by 字段名称+0 desc/asc的形式进行排序(亲测有效)
Run code
Cut to clipboard
order by 字段名称*1 desc/asc的形式进行排序( 没有进行测试 )
Run code
Cut to clipboard
文章:常用代码2 发表时间:2018-06-13, 10:45:53
#507
作者:广西河池市宜州市
js设置鼠标悬停改变背景色
$(function(){
var sign=document.getElementById("sign");
changBkColor(sign);
});
function changBkColor(obj){
obj.onmouseover=function(){ this.className="over"; };//鼠标悬停事件
obj.onmouseout=function(){ this.className="out"; };//鼠标离开事件
obj.onmousedown=function(){this.className="down";};//鼠标点击时触发事件
}
Run code
Cut to clipboard
/* $(obj).hover(inFunction,outFunction)
* 等同于$(obj).mouseover().mouseout();
*/
$(function(){
$('#sign').hover(function() {
$('#sign').addClass('over');
}, function() {
$('#sign').removeClass('over').addClass('out');
});
});
Run code
Cut to clipboard
文章:常用代码2 发表时间:2018-06-13, 10:44:30
#508
作者:广西河池市宜州市
解决“你没有权限访问,请与网络管理员联系”
找到你要共享的文件夹,选中并且右键,选中属性,选择安全选项卡
点击安全选项卡下面的编辑,弹出编辑选项卡
在组或用户名下面,点击添加,弹出选中用户和组选项卡
点击左下角的高级,弹出新的选项卡
点击立即查找,在下面的搜索结果中选择everyone
点击确定,在输入对象名称下面出现了everyone
点击确定,在组合用户名下面出现了everyone,在everyone的权限中选择你允许的权限,如读取,改写,读取和写入等,一般可以选择完全控制。然后点击确定
最后可以查看在安全选项卡下面的组合用户名中已经有了everyone
下面就是设置共享了,点击共享选项卡,点击高级共享
勾选共享此文件夹复选框
点击权限,选择everyone,并设置你的权限 #,广西河池市宜州市,2018-06-13,10:38:12, #,广西河池市宜州市,2018-06-13,10:39:19,
安装完成后,具体信息如下:
连接方式:L2TP
VPN用户名:test
VPN密码:test123
密钥:fuck_great_firewall
找到你要共享的文件夹,选中并且右键,选中属性,选择安全选项卡
点击安全选项卡下面的编辑,弹出编辑选项卡
在组或用户名下面,点击添加,弹出选中用户和组选项卡
点击左下角的高级,弹出新的选项卡
点击立即查找,在下面的搜索结果中选择everyone
点击确定,在输入对象名称下面出现了everyone
点击确定,在组合用户名下面出现了everyone,在everyone的权限中选择你允许的权限,如读取,改写,读取和写入等,一般可以选择完全控制。然后点击确定
最后可以查看在安全选项卡下面的组合用户名中已经有了everyone
下面就是设置共享了,点击共享选项卡,点击高级共享
勾选共享此文件夹复选框
点击权限,选择everyone,并设置你的权限
之前嘗試過 PPTP 和 OpenVPN ,但 PPTP 太弱,而 OpenVPN 太依賴第三方軟體,因此想說來試試看 L2TP/IPsec
架設的軟體使用 epel 上的 strongSwan 和 xl2tpd ,不用 openSwan 是因 OSX 在連線的時候會遇到伺服器端錯誤,據說是 openSwan 本身的問題
安裝前先把必要套件補完
yum install strongswan xl2tpd
strongSwan 裝完之後可以在 /etc/strongswan 設定,裏頭的 strongswan.conf 沒特別設定不需要去動,預設是所有 plugin 都載入
在這之前,記得先調整 kernel 和 iptables
sed -i 's/net.ipv4.ip_forward[ ]*=[ ]*0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf && sysctl -p # 啟動 ip_forward
# 防火牆規則僅供參考
iptables -A INPUT -p udp --dport 500 -j ACCEPT # IKE
iptables -A INPUT -p udp --dport 4500 -j ACCEPT # NAT-T
iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT # 強制 l2tp 透過 ipsec 存取
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE # 轉送 VPN 流量
/etc/init.d/iptables save
接著開始設定 IPsec 連線部分,我這邊使用 PSK ,其他驗證方法可以上官網文件查
/etc/strongswan/ipsec.conf
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
conn l2tp
keyexchange=ikev1 # IKE 版本
left=>>>>{對外 IP}<<<<<<
leftsubnet=0.0.0.0/0
leftprotoport=17/1701 # l2tp udp 流量
authby=secret # PSK 驗證
leftfirewall=no # 不要讓 strongswan 更改防火牆
right=%any # 任意 IP
rightprotoport=17/%any # 任意 port udp 流量
type=transport # ipsec transport mode
auto=add
/etc/strongswan/ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
: PSK "A long preshared key for ipsec"
IPsec 這邊設定和網路上的不一樣是因為新的 strongswan 使用 charon 來處理 IKEv1 ,而不是以往的 pluto
而且有時候設定太多反而會有一些奇怪的錯誤,於是就留預設值
如此一來 IPsec 的部分就完成了,再來是 L2TP
/etc/xl2tpd/xl2tpd.conf
[global]
listen-addr = >>>>{對外 IP}<<<<
[lns default]
ip range = 172.16.1.100-172.16.1.200; VPN 使用者配發的 IP 段
local ip = 172.16.1.1; VPN Server 本身的聯絡 IP
assign ip = yes
;refuse chap = yes
;refuse pap = yes <<<我個人覺得有 ipsec 使用 pap 沒關係,而且某些情況下(例如 pam),必須使用
require authentication = yes
unix authentication = yes; 使用 pam 驗證,用密碼檔記得刪掉這行
name = NyanVPNServer; 這個名字等一下會用到,可以任意取名
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
如果上面的 xl2tpd.conf 使用了 pam 驗證,要修改下面這個
/etc/pam.d/ppp
#%PAM-1.0
auth required pam_nologin.so
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so
PPP 的部分
/etc/ppp/options.xl2tpd
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8 # 推送的 DNS 資訊
ms-dns 8.8.4.4
# ms-dns 192.168.1.1
# ms-dns 192.168.1.3
# ms-wins 192.168.1.2
# ms-wins 192.168.1.4
noccp
auth
crtscts
idle 1800
#mtu 1410
#mru 1410
mtu 1200 # 我也不知道 mtu/mru 怎麼設,不過這個會動
mru 1200
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
login # 透過 PAP 使用系統密碼驗證,這也是為什麼前面不能拒絕 PAP 的原因
#require-mschap-v2 強迫使用 MS-CHAP-V2
最後是連線密碼, CHAP 和 PAP 的密碼檔是分開的,依照前面設定的內容和使用者的選擇而定
/etc/ppp/*-secrets
# Secrets for authentication using PAP
# client(帳號) server(前面提到的 name) secret(密碼) IP addresses(配發的 IP)
alice NyanVPNServer "AliceIsCute" *
# 下面這個是 PAM 的用法
* NyanVPNServer "" *
設定就到這邊為止,接著就可以啟動 VPN 了
service strongswan start
service xl2tpd start
成功連上 VPN 之後,如果無法連外,檢查看看 iptables 的 FORWARD chain 是不是有阻擋連線的行為
Run code
Cut to clipboard
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y update
yum -y install strongswan
yum -y install xl2tpd
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl -p
iptables -A INPUT -p udp --dport 500 -j ACCEPT # IKE
iptables -A INPUT -p udp --dport 4500 -j ACCEPT # NAT-T
iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT # 強制l2tp透過ipsec存取
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
ip_addr=` ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}'`
echo "conn %default
ikelifetime=24h
keylife=24h
rekeymargin=30m
keyingtries=1
rekey=no
conn l2tp
keyexchange=ikev1 # IKE版本
left=$ip_addr
leftsubnet=0.0.0.0/0
leftprotoport=17/1701 # l2tp udp流量
authby=secret # PSK驗證
leftfirewall=no # 不要讓strongswan更改防火牆
right=%any # 任意IP
rightprotoport=17/%any # 任意port udp流量
type=transport # ipsec transport mode
auto=add">>/etc/strongswan/ipsec.conf
echo ': PSK "fuck_great_firewall"'>>/etc/strongswan/ipsec.secrets
sed 's/\[global\].*$/&\nlisten-addr ='$ip_addr'/g' /etc/xl2tpd/xl2tpd.conf
sed -i 's/^mtu.*/mtu 1200/g' /etc/ppp/options.xl2tpd
sed -i 's/^mru.*/mru 1200/g' /etc/ppp/options.xl2tpd
echo 'login'>>/etc/ppp/options.xl2tpd
echo 'test * test123 *'>>/etc/ppp/chap-secrets
service strongswan start
service xl2tpd start
chkconfig strongswan on
chkconfig xl2tpd on
Run code
Cut to clipboard
安装完成后,具体信息如下:
连接方式:L2TP
VPN用户名:test
VPN密码:test123
密钥:fuck_great_firewall
文章:三步实现免费PHP空间搭建GoAgent翻墙 发表时间:2018-06-12, 17:58:56
#509
作者:广西河池市宜州市
L2TP/IPSec一键安装脚本
基于 OpenVZ 虚拟化技术的 VPS 需要开启TUN/TAP才能正常使用,购买 VPS 时请先咨询服务商是否支持开启 TUN/TAP
OpenVZ 虚拟的 VPS 需要系统内核支持 IPSec 才行。也就是说,母服务器的内核如果不支持的话那就没办法,只能换 VPS
因此,一般不建议在 OpenVZ 的 VPS 上安装本脚本。脚本如果检测到该 VPS 为 OpenVZ 架构,会出现警告提醒
检测是否支持TUN模块
执行命令:
返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常
检测是否支持ppp模块
执行命令:
返回信息为:cat: /dev/ppp: No such device or address 说明正常
当然,脚本在安装时也会执行检查,如果不适用于安装,脚本会予以提示
root 用户登录后,运行以下命令:

安装完成后,脚本会执行 ipsec verify 命令并提示如下:

对用户进行操作:
其他事项:
1、脚本在安装完成后,已自动启动进程,并加入了开机自启动。
2、脚本会改写 iptables 或 firewalld 的规则。
3、脚本安装时,会即时将安装日志写到 /root/l2tp.log 文件里,如果你安装失败,可以通过此文件来寻找错误信息。
使用命令:
测试表明,在内网环境的 VPS 里(如AWS, IDCF,GCE,腾讯云,阿里云等)也可以正常使用
基于 OpenVZ 虚拟化技术的 VPS 需要开启TUN/TAP才能正常使用,购买 VPS 时请先咨询服务商是否支持开启 TUN/TAP
OpenVZ 虚拟的 VPS 需要系统内核支持 IPSec 才行。也就是说,母服务器的内核如果不支持的话那就没办法,只能换 VPS
因此,一般不建议在 OpenVZ 的 VPS 上安装本脚本。脚本如果检测到该 VPS 为 OpenVZ 架构,会出现警告提醒
检测是否支持TUN模块
执行命令:
cat /dev/net/tun
Run code
Cut to clipboard
返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常
检测是否支持ppp模块
执行命令:
cat /dev/ppp
Run code
Cut to clipboard
返回信息为:cat: /dev/ppp: No such device or address 说明正常
当然,脚本在安装时也会执行检查,如果不适用于安装,脚本会予以提示
root 用户登录后,运行以下命令:
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
Run code
Cut to clipboard
chmod +x l2tp.sh
Run code
Cut to clipboard
./l2tp.sh
Run code
Cut to clipboard
Please input IP-Range:
(Default Range: 192.168.18):
输入本地IP段范围(本地电脑连接到VPS后给分配的一个本地IP地址),直接回车意味着输入默认值192.168.18
Please input PSK:
(Default PSK: teddysun.com):
PSK意为预共享密钥,即指定一个密钥将来在连接时需要用到,直接回车意味着输入默认值teddysun.com
Please input Username:
(Default Username: teddysun):
Username意为用户名,即第一个默认用户。直接回车意味着输入默认值teddysun
Please input teddysun’s password:
(Default Password: Q4SKhu2EXQ):
输入用户的密码,默认会随机生成一个10位包含大小写字母和数字的密码,当然你也可以指定密码。
ServerIP:your_server_main_IP
显示你的 VPS 的主 IP(如果是多 IP 的 VPS 也只显示一个)
Server Local IP:192.168.18.1
显示你的 VPS 的本地 IP(默认即可)
Client Remote IP Range:192.168.18.2-192.168.18.254
显示 IP 段范围
PSK:teddysun.com
显示 PSK
Press any key to start…or Press Ctrl+c to cancel
按下任意按键继续,如果想取消安装,请按Ctrl+c键
Run code
Cut to clipboard
安装完成后,脚本会执行 ipsec verify 命令并提示如下:
对用户进行操作:
l2tp -a 新增用户
l2tp -d 删除用户
l2tp -m 修改现有的用户的密码
l2tp -l 列出所有用户名和密码
l2tp -h 列出帮助信息
Run code
Cut to clipboard
其他事项:
1、脚本在安装完成后,已自动启动进程,并加入了开机自启动。
2、脚本会改写 iptables 或 firewalld 的规则。
3、脚本安装时,会即时将安装日志写到 /root/l2tp.log 文件里,如果你安装失败,可以通过此文件来寻找错误信息。
使用命令:
ipsec status (查看 IPSec 运行状态)
ipsec verify (查看 IPSec 检查结果)
/etc/init.d/ipsec start|stop|restart|status (CentOS6 下使用)
/etc/init.d/xl2tpd start|stop|restart (CentOS6 下使用)
systemctl start|stop|restart|status ipsec (CentOS7 下使用)
systemctl start|stop|restart xl2tpd (CentOS7 下使用)
service ipsec start|stop|restart|status (Debian/Ubuntu 下使用)
service xl2tpd start|stop|restart (Debian/Ubuntu 下使用)
Run code
Cut to clipboard
测试表明,在内网环境的 VPS 里(如AWS, IDCF,GCE,腾讯云,阿里云等)也可以正常使用
文章:三步实现免费PHP空间搭建GoAgent翻墙 发表时间:2018-06-12, 12:04:41
#510
作者:广西河池市金城江区
新后台 发布文章 编辑文章 页面 路径
#,广西河池市金城江区,2018-04-20,16:33:27, 百度编辑器配置文件路径
#,广西河池市金城江区,2018-04-20,16:34:39, #,广西河池市,2018-05-12,09:12:09,
php接收textarea内容后显示换行和空格
php textarea换行
也可以使用nl2br进行回车替换
注:要用双引号,不然无法替换; #,广西河池市金城江区,2018-05-18,22:29:57,
编辑器改变获取内容

#,广西河池市金城江区,2018-05-18,22:38:22,@4 , #,广西河池市金城江区,2018-05-18,22:38:40,@5 , ajax处理json #,广西河池市金城江区,2018-05-19,14:09:13,
ueditor 去掉默认<p>
#,广西河池市金城江区,2018-05-19,14:09:57,
js name textarea 赋值
#,广西河池市金城江区,2018-05-19,14:11:05,
phpjson字符串转json对象
结果
#,广西河池市金城江区,2018-05-19,14:11:17,@9 ,
如果你json_decode后返回null,你是不是把字符串写成这样了"{ 'bar': 'baz' }",这个在JS里是可以正常解析成JSON的,但是PHP里面要写成'{ "bar": "baz" }',属性和值要用双引号 #,广西河池市金城江区,2018-05-19,14:11:29,@10 , 用json_decode(),前提是json格式属性和值要用双引号,用python的话可以不用双引号 #,广西河池市金城江区,2018-05-19,14:12:11, php foreach跳出本次/当前循环与终止循环方法
PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想要跳出本次循环继续执行下次循环,或者满足某个条件的时候,终止foreach()循环,分别会用到:continue 与 break
#,广西河池市金城江区,2018-05-19,14:13:26, select选中触发事件
#,广西河池市金城江区,2018-05-19,14:19:11, ThinkPHP函数详解:cookie方法

Cookie设置
3.1版本开始,cookie方法增加对数组的支持(采用轻量级的json编码格式保存 减少存储空间)
还可以支持参数传入的方式完成复杂的cookie赋值,下面是对cookie的值设置3600秒有效期,并且加上cookie前缀think_
数组参数可以采用query形式参数
和上面的用法等效。
传入的option参数支持prefix,expire,path,domain四个索引参数,如果没有传入或者传入空值的话,会默认取COOKIE_PREFIX、COOKIE_EXPIRE、COOKIE_PATH和COOKIE_DOMAIN四个配置参数。如果只传入个别参数,那么也会和默认的配置参数合并
Cookie获取
获取cookie很简单,无论是怎么设置的cookie,只需要使用:
如果没有设置cookie前缀的话 相当于
Cookie删除
删除某个cookie的值,使用:
要删除所有的Cookie值,可以使用
#,广西河池市金城江区,2018-05-19,14:19:29,@15 , cookie前面一定不能有任何ECHO ,或者PRINT_R等输出,不然COOKIE会无效 #,广西河池市金城江区,2018-05-19,14:20:54, 通过Ajax使用FormData对象无刷新上传文件
第一种方式:
第二种方式:
注意:
Ajax的processData设置为false。因为data值是FormData对象,不需要对数据做处理。
第二种方式中<form>标签加enctyp e="multipart/form-data"属性。
cache设置为false,上传文件不需要缓存。
contentType设置为false。因为是由<form>表单构造的FormData对象,且已经声明了属性enctype="mutipart/form-data",所以这里设置为false #,广西河池市金城江区,2018-05-21,20:43:18,
#,广西河池市金城江区,2018-05-21,20:43:38, php输出26个大小写英文字母 #,广西河池市金城江区,2018-05-21,20:44:12, #,广西河池市金城江区,2018-05-21,20:44:41, #,广西河池市金城江区,2018-05-23,10:51:03,@7 ,
ueditor.all.js
#,广西河池市金城江区,2018-05-23,10:57:45,@7 ,
weiphp ueditor
thinkphp 过滤style
weiphp
百度编辑器修图添加css和style标签样式ueditor.all.min.js
百度编辑器修图添加css和style标签样式ueditor.all.min.js
#,广西河池市金城江区,2018-05-23,11:00:13, 百度编辑器修图添加css和style标签样式ueditor.all.min.js
百度编辑器修图添加css和style标签样式ueditor.all.min.js #,广西河池市金城江区,2018-05-23,11:01:58,@7 ,


#,广西河池市金城江区,2018-05-23,11:06:01,
tp框架中有个接受所有post过来的函数
Model的create()方法,自动创建数据对象功能

#,广西河池市金城江区,2018-05-23,11:18:38,@7 , 
#,广西河池市金城江区,2018-05-23,14:40:50, 
#,广西河池市,2018-05-27,19:57:34,@3 , #,广西河池市,2018-06-08,17:24:10, php 去除图片以及DIV的width、height、style
PHP正则去掉img 宽度高度
#,广西河池市,2018-06-08,18:06:32,
放在body后面
移动设备移动端手机版本 rem
页面加载顺序 font-size:0px 闪缩 适配
#,广西河池市,2018-06-08,18:08:06,@32 ,
\app\system\admin\templates\web\content
Run code
Cut to clipboard
\app\system\include\public\js\examples\editor\ueditor\ueditor.config.js
Run code
Cut to clipboard
\app\system\include\public\js\examples\editor\ueditor\dialogs\insertframe\insertframe.html
Run code
Cut to clipboard
php接收textarea内容后显示换行和空格
php textarea换行
str_replace(" "," ",str_replace("\n","<br/>",$_POST['content']));
Run code
Cut to clipboard
也可以使用nl2br进行回车替换
echo nl2br($_POST['content']); //nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)
Run code
Cut to clipboard
注:要用双引号,不然无法替换;
编辑器改变获取内容
window.UE.getEditor('container_contentcarinfo').setContent(data);
Run code
Cut to clipboard
dataType: 'json',
error: function(request) {
/*$.edbox({
html:'<div class="example-html">服务器繁忙</div>',
////animateOpen:'animated tada',
////animateClose:'animated flipOutX',
afterClose:function(){
location.reload();
}
});*/
alert('服务器繁忙');
return false;
//alert("提交失败");
},
success: function(data) {
if(data){
//$('#ajax_get_cx').html(data);
//return false;
var css='';
window.UE.getEditor('container_contentcarinfo').setContent(css+data.info);
}else{
Run code
Cut to clipboard
ueditor 去掉默认<p>
// 找到addInputRule方法,并将switch case 中的case style:删除
me.addInputRule(function (root) {
...
//进行默认的处理
root.traversal(function (node) {
if (node.type == 'element') {
...
switch (node.tagName) {
case 'style': // 删除这项
case 'script':
....
}
}
}
})
Run code
Cut to clipboard
js name textarea 赋值
$("[name='content']").html(值);
$("[name='content']").text(值);
Run code
Cut to clipboard
phpjson字符串转json对象
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
Run code
Cut to clipboard
结果
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
Run code
Cut to clipboard
如果你json_decode后返回null,你是不是把字符串写成这样了"{ 'bar': 'baz' }",这个在JS里是可以正常解析成JSON的,但是PHP里面要写成'{ "bar": "baz" }',属性和值要用双引号
PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想要跳出本次循环继续执行下次循环,或者满足某个条件的时候,终止foreach()循环,分别会用到:continue 与 break
$arr= array('le','yang','jun','lecode','gagade');
$html= '';
foreach($arras $key => $value){
if($value=='b'){
$html.= $value;
continue;// 当 $value为b时,跳出本次循环
}
if($value=='c'){
$html.= $value;
break;// 当 $value为c时,终止循环
}
$html.= $value;
}
echo$html; // 输出: abc
Run code
Cut to clipboard
<script type="text/javascript">
$(document).ready(function () {
$("#sel").bind("change",function(){
if($(this).val()==0){
return;
}
else{
$("#thediv").text($(this).val());
}
});
});
</script>
Run code
Cut to clipboard
Cookie设置
cookie('name','value'); //设置cookie
cookie('name','value',3600); // 指定cookie保存时间
Run code
Cut to clipboard
3.1版本开始,cookie方法增加对数组的支持(采用轻量级的json编码格式保存 减少存储空间)
cookie('name',array('name1','name2'));
Run code
Cut to clipboard
还可以支持参数传入的方式完成复杂的cookie赋值,下面是对cookie的值设置3600秒有效期,并且加上cookie前缀think_
cookie('name','value',array('expire'=>3600,'prefix'=>'think_'))
Run code
Cut to clipboard
数组参数可以采用query形式参数
cookie('name','value','expire=3600&prefix=think_')
Run code
Cut to clipboard
和上面的用法等效。
传入的option参数支持prefix,expire,path,domain四个索引参数,如果没有传入或者传入空值的话,会默认取COOKIE_PREFIX、COOKIE_EXPIRE、COOKIE_PATH和COOKIE_DOMAIN四个配置参数。如果只传入个别参数,那么也会和默认的配置参数合并
Cookie获取
获取cookie很简单,无论是怎么设置的cookie,只需要使用:
$value = cookie('name');
Run code
Cut to clipboard
如果没有设置cookie前缀的话 相当于
$value = $_COOKIE['前缀+name']
Run code
Cut to clipboard
Cookie删除
删除某个cookie的值,使用:
cookie('name',null);
Run code
Cut to clipboard
要删除所有的Cookie值,可以使用
cookie(null); // 清空当前设定前缀的所有cookie值
cookie(null,'think_'); // 清空指定前缀的所有cookie值
Run code
Cut to clipboard
第一种方式:
var oMyForm = new FormData();
oMyForm.append("username", "Groucho");
oMyForm.append("accountnum", 123456);
oMyForm.append("file", $('#file')[0].files[0]);
$.ajax({
url: '/Manage/UploadImg',
type: 'POST',
cache: false,
data: oMyForm,
processData: false,
contentType: false,
async: false
}).done(function(res) {}).fail(function(res) {});
Run code
Cut to clipboard
第二种方式:
<form id="uploadForm" enctype="multipart/form-data">
<p>指定文件名: <input type="text" name="filename" value="" /></p>
<p>上传文件: <input type="file" name="file" /></ p>
<input type="button" value="上传" onclick="doUpload()" />
</form>
Run code
Cut to clipboard
var formData = new FormData($('#uploadForm')[0]);
formData.append('num', '1');//可以在已有表单数据的基础上,继续添加新的键值对
$.ajax({
url: '/upload',
type: 'POST',
cache: false,
data: new FormData($('#uploadForm')[0]),
processData: false,
contentType: false
}).done(function(res) {}).fail(function(res) {});
Run code
Cut to clipboard
注意:
Ajax的processData设置为false。因为data值是FormData对象,不需要对数据做处理。
第二种方式中<form>标签加enctyp e="multipart/form-data"属性。
cache设置为false,上传文件不需要缓存。
contentType设置为false。因为是由<form>表单构造的FormData对象,且已经声明了属性enctype="mutipart/form-data",所以这里设置为false
$("#id")与$('input[name="nameId"]')的区别
今日在用easyUI的numberbox控件时遇到一个问题;
我在页面中定义了一个输入框:
<input id="yesId" name="yesName" value="yes" ></input>
使用jquery选择器获取这个输入框时,有两种方法
var a = $("#yesId");
var b = $('input[name="yesName"]');
alert(a == b); // false
总结:在使用numberbox的setValue方法时:
$("#yesId").numberbox("setValue",100); // 有效,这也是api上使用的方式
$('input[name="yesName"]').numberbox("setValue",100); // 无效并报错,不可使用此方式
Run code
Cut to clipboard
for($i=65;$i<91;$i++){
echo strtolower(chr($i)).' ';//输出小写字母
echo strtoupper(chr($i)).' ';//输出大写字母
}
Run code
Cut to clipboard
jquery获取select选中的值
误区:
一直以为jquery获取select中option被选中的文本值,是这样写的:
$("#s").text(); //获取所有option的文本值
实际上应该这样:
$("#s option:selected").text(); //获取选中的option的文本值
获取select中option的被选中的value值,
$("#s").val();
$("#s option:selected").val();
js获取select选中的值:
var sel=document.getElementById("select1");
var index = sel.selectedIndex; // 选中索引
albumid= sel.options[index].value;//要的值
Run code
Cut to clipboard
jquery操作select(取值,设置选中)(转)
http://www.cnblogs.com/liaojie970/p/5210541.html
比如<select class="selector"></select>
1、设置value为pxx的项选中
$(".selector").val("pxx");
2、设置text为pxx的项选中
$(".selector").find("option[text='pxx']").attr("selected",true);
这里有一个中括号的用法,中括号里的等号的前面是属性名称,不用加引号。很多时候,中括号的运用可以使得逻辑变得很简单。
3、获取当前选中项的value
$(".selector").val();
4、获取当前选中项的text
$(".selector").find("option:selected").text();
这里用到了冒号,掌握它的用法并举一反三也会让代码变得简洁。
很多时候用到select的级联,即第二个select的值随着第一个select选中的值变化。这在jquery中是非常简单的。
如:$(".selector1").change(function(){
// 先清空第二个
$(".selector2").empty();
// 实际的应用中,这里的option一般都是用循环生成多个了
var option = $("<option>").val(1).text("pxx");
$(".selector2").append(option);
});
Run code
Cut to clipboard
ueditor.all.js
// 找到allowDivTransToP参数,这个参数会将DIV标签转为P标签,设置为false
me.setOpt(
{
'allowDivTransToP':false,
'disabledTableInTable':true
}
);
Run code
Cut to clipboard
weiphp ueditor
\Public\static\ueditor
Run code
Cut to clipboard
thinkphp 过滤style
weiphp
// 系统默认的变量过滤机制
'DEFAULT_FILTER' => 'htmlspecialchars'
Run code
Cut to clipboard
\Application\Common\Conf\config.php
Run code
Cut to clipboard
\Application\Common\Common\function.php
Run code
Cut to clipboard
百度编辑器修图添加css和style标签样式ueditor.all.min.js
百度编辑器修图添加css和style标签样式ueditor.all.min.js
百度编辑器修图添加css和style标签样式ueditor.all.min.js
tp框架中有个接受所有post过来的函数
Model的create()方法,自动创建数据对象功能
//获取服务保障文章
$fwbzlist=M('news')->order('no_order desc,id desc')->limit(9)->select();//where("class1=482")->
//dump($fwbzlist);exit;
foreach($fwbzlist as $fwk=>&$fwv){
$fwv= str_replace("\r\n",'<br/>',$fwv);
}
$this->assign('fwbzlist',$fwbzlist);
Run code
Cut to clipboard
PHP正则去掉img 宽度高度
<?php
//去掉图片宽度
$search = '/(<img.*?)width=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$content = preg_replace($search,'$1$3',$content);
//去除图片的高度
$search1 = '/(<img.*?)height=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$content = preg_replace($search1,'$1$3',$content);
//去除style样式
$content = preg_replace("/style=.+?['|\"]/i",'',$content);
?>
<style>.centent img{max-width:100%;}</style>
Run code
Cut to clipboard
放在body后面
移动设备移动端手机版本 rem
页面加载顺序 font-size:0px 闪缩 适配
<script>
document.ready = function(){
/*360代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例,这里写100是
为了以后好算,比如,你测量的一个宽度是100px,就可以写为1rem,以及1px=0.01rem等等*/
getRem(360,100)
};
window.onresize = function(){
getRem(360,100)
};
getRem(360,100);
function getRem(pwidth,prem){
var html = document.getElementsByTagName("html")[0];
var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
html.style.fontSize = oWidth/pwidth*prem + "px";
}
</script><!--100px=1rem-->
Run code
Cut to clipboard
window.onload = function () {
alert('onload');
};
document.ready(function () {
alert('ready');
});
Run code
Cut to clipboard
$(function(){}) 和$(document).ready(function(){})
Run code
Cut to clipboard
document.ready = function (callback) {
///兼容FF,Google
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function () {
document.removeEventListener('DOMContentLoaded', arguments.callee, false);
callback();
}, false)
}
//兼容IE
else if (document.attachEvent) {
document.attachEvent('onreadystatechange', function () {
if (document.readyState == "complete") {
document.detachEvent("onreadystatechange", arguments.callee);
callback();
}
})
}
else if (document.lastChild == document.body) {
callback();
}
}
Run code
Cut to clipboard
文章:常用代码2 发表时间:2018-04-20, 16:29:16
#513
作者:广西河池市
https://github.com/geektheripper/fuck-smartisan





文章:@意见反馈/技术支持/伊网/安企网 发表时间:2018-06-06, 10:09:30
<?php # Script -- isimg3.php /* Author @ Huoty * Date @ 2015-11-25 16:53:04 * Brief @ */ $mimetype = exif_imagetype("1.jpg"); if ($mimetype == IMAGETYPE_GIF || $mimetype == IMAGETYPE_JPEG || $mimetype == IMAGETYPE_PNG || $mimetype == IMAGETYPE_BMP) { echo "是图片"; }
IMAGETYPE_GIF IMAGETYPE_JPEG IMAGETYPE_PNG IMAGETYPE_SWF IMAGETYPE_PSD IMAGETYPE_BMP IMAGETYPE_TIFF_II(Intel 字节顺序) IMAGETYPE_TIFF_MM(Motorola 字节顺序) IMAGETYPE_JPC IMAGETYPE_JP2 IMAGETYPE_JPX IMAGETYPE_JB2 IMAGETYPE_SWC IMAGETYPE_IFF IMAGETYPE_WBMP IMAGETYPE_XBM