SQLyog、phpMyAdmin、Navicat 三大常用MySQL数据库管理工具
1,SQLyog是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库,简单便捷。
2,phpmyadmin是一个用PHP编写的,可以通过互联网控制和操作MySQL。通过phpMyAdmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。 管理 MySQL-server 以及单一数据库的 PHP 程序,对于不熟悉 MySQL 命令列指令的人来说,是很方便的管理工具。
3,navicat是一个强大的MySQL数据库管理和开发工具,从8.0发展至今,一直都是开发人员的利器,和web版本的phpmyadmin相比,速度快,操作方便等优势严重胜出。
WINDOWS服务器C盘清理
@echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q C:\WINDOWS\Temp\*.* del /f /s /q C:\WINDOWS\system32\wbem\Logs\*.* del /f /s /q "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\*.*" del /f /s /q C:\WINDOWS\system32\config\systemprofile\Local Settings\Temp\*.* del /f /s /q "C:\WINDOWS\Driver Cache\i386\*.*" del /f /s /q C:\WINDOWS\SoftwareDistribution\Download\*.* del /f /s /q "C\WINDOWS\ServicePackFiles\*.*" del /f /s /q "C:\Documents and Settings\Administrator\Cookies\*.*" del /f /s /q "C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\*.*" del /f /s /q "C:\Documents and Settings\Administrator\Local Settings\Temp\*.*" del /f /s /q "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS\*.*" echo 清除系统垃圾完成! echo. & pause
以上保存为.bat文件运行即可
另外
C:\WINDOWS\system32\LogFiles
C:\inetpub\logs\LogFiles\W3SVC1
也会有大量的网站访问日志文件,可视情况删除。
有的服务器以下目录会包含大量npm开头的 .exe文件,不知道是怎么生成的。试过一次C盘备份后删除之,重启一切正常。 不明所以……
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp
nginx环境中CodeIgniter的配置
nginx官方给出的配置方法:https://www.nginx.com/resources/wiki/start/topics/recipes/codeigniter/
但是我试了并没起作用,最终使用下面方法解决:
if (!-e $request_filename) { rewrite ^/admin\.php /admin.php last; rewrite ^.*$ /index.php last; }
幸亏CI是单入口,几行就行了。
原理:当访问的文件或目录不存在(!-e $request_filename)时,重定向到某个php文件。所以上面方法虽然简单,但是也要注意到url中不能有对应路径的真实文件或目录才可以。
电子相册
电子书、电子杂志参考 官网 https://www.fliphtml5.com/ 云展网企业宣传册制作:https://www.yunzhan365.com/ https://book.yunzhan365.com/pteyi/dckd/mobile/index.html https://book.yunzhan365.com/rvdk/vggc/mobile/index.html
photoswipe兼容手机版,支持拖动、缩放
https://github.com/dimsemenov/photoswipe
fancybox 不支持拖动、缩放
使用jquery.qrcode.js生成二维码-支持中英文混合输入
官网:https://larsjung.de/jquery-qrcode/
github:https://github.com/lrsjng/jquery-qrcode
演示:https://larsjung.de/jquery-qrcode/latest/demo/
<div id="qrcodeTable"></div> <img id="logoimg" src="logo.png"> <script> $('#qrcodeTable').qrcode({ // render method: 'canvas', 'image' or 'div' render: 'image', // version range somewhere in 1 .. 40 minVersion: 1, maxVersion: 40, // error correction level: 'L', 'M', 'Q' or 'H' ecLevel: 'L', // offset in pixel if drawn onto existing canvas left: 0, top: 0, // size in pixel size: 200, //二维码尺寸 // code color or image element fill: '#000', //二维码颜色 // background color or image element, null for transparent background background: '#fff', //背景色 // content text: '汉a字', // corner radius relative to module width: 0.0 .. 0.5 radius: 0, // quiet zone in modules quiet: 2, //可理解为css的padding,大小为quiet*6像素 // modes // 0: normal 无文字、无logo // 1: label strip // 2: label box 显示文字 // 3: image strip // 4: image box 显示logo mode: 4, mSize: 0.1, //logo尺寸 mPosX: 0.5, //logo位置 mPosY: 0.5, label: 'hello', //使用文字代替logo fontname: 'sans', fontcolor: '#000', image: null, //$('#logoimg')[0] }); </script>
<script> $('#qrcodeTable').qrcode({ render: 'image', //canvas|image|div size: 200, //二维码尺寸 text: '汉a字', quiet: 2, //可理解为css的padding,大小为quiet*6像素 }); </script>
encodeURI、encodeURIComponent、escape
decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码
<script>
var s = encodeURI('http://www.baidu.com/s?wd=你好');
document.write(s+'<br>'); //http://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD
s = 'http://www.baidu.com/s?wd='+encodeURI('你好');
document.write(s+'<br>'); //http://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD
document.write(decodeURI('http://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD')); //http://www.baidu.com/s?wd=你好
</script>
在使用url进行参数传递时,经常会传递一些中文名的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的encodeURI函数编码的URL,结果就不一样。
javaScript中的编码方法:
escape() 方法:采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +
encodeURI() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
decodeURIComponent -- 解码encodeURIComponent函数编码的字符串
m3u8/TS视频下载方法
1、通过浏览器控制台的network找到m3u8文件地址并下载
2、打开迅雷,用记事本或nopetad等打开下载的m3u8文件》全选》复制》迅雷会自动识别其中的ts文件地址,批量下载
3、随便找个视频合并软件合并下载的ts文件。我用的M3U8 Downloader合并视频,也可以用它下载,但是迅雷下载更快。
一个200M大小的视频几分钟完成。
linux/centos+nginx添加网站
1、新建网站目录并上传程序
2、添加新网站的配置文件
/usr/local/nginx/conf/vhost/domain2.conf
3、在nginx.conf中添加对新网站配置文件的调用:
include vhost/domain2.conf;
或者自动加载所有网站的配置:
include vhost/*.conf;
4、重启nginx
在nginx/sbin目录执行 ./nginx -s reload
参考:
Nginx的启动、停止与重启 https://www.cnblogs.com/codingcloud/p/5095066.html
xshell常用命令大全 https://www.cnblogs.com/qq350760546/p/7890680.html
nginx新建网站 https://bbs.aliyun.com/read/3189.html
nginx新建网站 https://www.cnblogs.com/eco-just/p/8964108.html
iscroll仿系统滚动插件
http://caibaojian.com/iscroll-5/
https://segmentfault.com/a/1190000003113280
https://blog.csdn.net/amyloverice/article/details/79383712
http://www.jq22.com/jquery-info13446
CDN https://www.bootcdn.cn/iScroll/
最简单的js日历
<meta charset="utf-8"> <div id="calendar"></div> <script> /** * edgesun@126.com * 20190207 */ function myCalendar(YEAR,MONTH){ function isLng(num){return /^(0|([1-9]\d*))$/.test(''+num);} var myDate=new Date(), today={year:myDate.getFullYear(), month:myDate.getMonth(), date:myDate.getDate(), ymd:''}; //当前日期 today.ymd = today.year+ (today.month<9?'0':'')+(today.month+1)+(today.date<10?'0':'')+today.date; if(isLng(YEAR) && isLng(MONTH)){ if(YEAR<2010 || YEAR>2037){alert('不能再翻啦~');return;} if(MONTH>11){alert('参数month应该为0到11的整数');return;} myDate.setFullYear(YEAR, MONTH, 1); }else{ YEAR = today.year; MONTH = today.month; } var PrevNext=[[0,0],[0,0]]; //依次为上一月的年、月,下一月的年、月 if(MONTH==0){ PrevNext = [[YEAR-1,11],[YEAR,1]]; }else if(MONTH==11){ PrevNext = [[YEAR,10],[YEAR+1,0]]; }else{ PrevNext = [[YEAR,MONTH-1],[YEAR,MONTH+1]]; } myDate.setDate(1); //当前显示月的第一天 var weekday=myDate.getDay()?myDate.getDay():7; //当前显示月的第一天是星期几(星期天重置为7,即每周最后一天) myDate.setMonth(MONTH+1); myDate.setDate(0); var totalDays = myDate.getDate(); //当前显示月的总天数 var html='<table width="100%" border="1" cellpadding="5" cellspacing="0"><thead><tr><th onclick="myCalendar('+PrevNext[0][0]+','+PrevNext[0][1]+')">上个月</th><th colspan="5">'+YEAR+'年'+(MONTH+1)+'月</th><th onClick="myCalendar('+PrevNext[1][0]+','+PrevNext[1][1]+')">下个月</th></tr><tr><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th><th>星期日</th></tr></th><tbody>'; var n=0, ymd=''; for(var i=1; i<=42; ++i){ if(i%7==1) html+='<tr>'; if(i>=weekday && i<totalDays+weekday){ ++n; ymd=''+YEAR+(MONTH<9?'0':'')+(MONTH+1)+(n<10?'0':'')+n; html+='<td'+(ymd==today.ymd?' style="background-color:#ddf;"':'')+' data-date="'+ymd+'">'+n+'</td>'; }else{ html+='<td></td>'; } if(i%7==0){ html+='</tr>'; if(i>=(totalDays+weekday-1))break; } } html+='</tbody></table>'; document.getElementById('calendar').innerHTML=html; } myCalendar(); </script>